我是Android和Java编程的新手,但是从事.NET编程已有多年了。我们最近开发了一个android应用,现在已经为客户准备了最后阶段(而不是通过market / google play)。无论如何,同时清理代码。我注意到我们使用了大量的字符串,如果可能的话,我希望减少使用。我阅读了几篇文章,并建议最终用户可以看到的任何内容,都将其放在strings.xml中(为了更好地进行本地化,不太清楚其含义是什么),但是我们也使用SQLite表名,列名等,我想知道构造一个类(或一组类)的最佳方法,该类使我们(我和我的开发人员)可以轻松访问它们。

这就是我开始构建它的方式,但是希望对是否有更好的方法(设计,性能问题等)提出一些意见。

public class Constants {

    static enum SQLiteTableNames { Issues, Activities }

    static class SQLiteTables {
        static class Issues {
            static class ColumnNames {
                static String ID = "_id";
                static String DateReceived = "DateReceived";
            }
        }

        static class IssueActivites {
            static class ColumnNames {
                static String ID = "_id";
                static String IssueID = "IssueID";
                static String ActivityDate = "ActivityDate";
                static String ActivityType = "ActivityType";
                static String FullName = "FullName";
                static String Notes = "Notes";
            }
        }
    }
}


这使我们可以像这样引用列名:

Constants.SQLiteTables.IssueActivites.ColumnNames.ActivityDate;


我应该在属性上使用final static而不是static吗?

最佳答案

常数应为static final。这确实具有性能上的好处,因为它允许将值编译进来。它也是很好的样式。

顺便说一句,约定是在ALL_CAPS中放置常量名称。

08-06 02:27