У меня есть два класса и интерфейс (например, 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;
// ...
}
Проблема, с которой я столкнулся, заключается в том, что во время выполнения, когда я вызываю localStore.function ()
, temp присваивается значение null, как InternalModelInterface.COLUMN_PARAM1
имеет значение null. Имеет ли это смысл? Не должно InternalModelInterface. COLUMN_PARAM1
быть оцененным во время компиляции и встроенным?
Это для приложения Android. Заранее спасибо.
Я объясню дополнительно, чтобы прояснить любую путаницу.
Объекты класса DatabaseModel
создаются при анализе ответа JSON. Константы, определенные в классе DatabaseModel
, представляют ключи, которые нужно искать в ответе JSON.
InternalModelInterface
определяет имена столбцов, используемые в локальной (кэшированной) базе данных на устройстве. . По нескольким причинам (включая то, что ключи являются недопустимыми именами столбцов в SQLite), я не использую повторно ключи в качестве имен столбцов.
Причина, по которой я использую интерфейс, а не просто класс, заключается в том, что интерфейс также указывает требуемые методы, которые должны быть реализованы третьим классом LocalStore.