我有两个类和接口(例如DatabaseModel,LocalStore和InternalModelInterface).它们的定义如下;
public class DatabaseModel {
// ...
public static final String KEY_PARAM1 = "param1";
}
public class LocalStore implements InternalModelInterface {
// ...
public void function () {
String temp = InternalModelInterface.COLUMN_PARAM1;
}
}
public interface InternalModelInterface {
public static final String COLUMN_PARAM1 = DatabaseModel.KEY_PARAM1;
// ...
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,在运行时,当我调用时localStore.function(),temp被赋值为null,因为InternalModelInterface.COLUMN_PARAM1为null.这有意义吗?不InternalModelInterface.COLUMN_PARAM1应该在编译时进行评估并内联?
这适用于Android应用程序.提前致谢.
我将进一步解释澄清任何混淆.
在DatabaseModel解析JSON响应时实例化该类的对象.DatabaseModel类中定义的常量表示在JSON响应中查找的键.
的InternalModelInterface定义了在设备上的本地(缓存)数据库中使用的列名.由于多种原因(包括它们是SQLite中的非法列名),我不会将键重用为列名.
我使用接口而不仅仅是普通类的原因是接口还指定了需要由第三类LocalStore实现的所需方法.