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