为什么在 SQLiteOpenHelper 类变量的所有演示和教程中总是:public static final
看看:
public static final String ORDER_ID = "order_id";
public static final String ORDER_LOGIN_NAME = "login_name";
public static final String ORDER_RESTO_U_NAME = "resto_uniqe_name";
我的问题是:我正在制作一个应用程序,但它的数据库太大了。所以,我将不得不制作至少 60-70 个此类变量。不会影响应用性能吗?因为这些是静态变量。
任何帮助将不胜感激....
最佳答案
好吧,它们是public
还是private
还是package
-protected取决于你的需要,但是final static
是根据 Android 指南声明常量的好方法,请在此处查看解释:http://developer.android.com/training/articles/perf-tips.html#UseFinal
考虑类顶部的以下声明:
static int intVal = 42;
static String strVal = "Hello, world!";
编译器生成一个名为 的类初始化方法,该方法在首次使用该类时执行。该方法将值 42 存储到 intVal 中,并从类文件字符串常量表中提取 strVal 的引用。稍后引用这些值时,将通过字段查找访问它们。
我们可以用“final”关键字来改善事情:
static final int intVal = 42;
static final String strVal = "Hello, world!";
该类不再需要方法,因为常量进入 dex 文件中的静态字段初始值设定项。引用 intVal 的代码将直接使用整数值 42,而访问 strVal 将使用相对便宜的“字符串常量”指令而不是字段查找。
关于android - SQLiteOpenHelper android中变量的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22554733/