2 つのクラスと 1 つのインターフェイス (たとえば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 と同様に temp に null が割り当てられることInternalModelInterface.COLUMN_PARAM1
です。これは理にかなっていますか?InternalModelInterface.COLUMN_PARAM1
コンパイル時に評価してインライン化すべきではありませんか?
これは Android アプリケーション用です。前もって感謝します。
混乱を解消するために、さらに説明します。
DatabaseModel
JSON 応答が解析されると、クラスのオブジェクトがインスタンス化されます。クラスで定義された定数DatabaseModel
は、JSON 応答で検索するキーを表します。
はInternalModelInterface
、デバイスのローカル (キャッシュ) データベースで使用される列名を定義します。いくつかの理由 (SQLite ではキーが不正な列名であることなど) から、キーを列名として再利用していません。
私が単純なクラスだけでなくインターフェイスを使用している理由は、インターフェイスが、3 番目のクラスである LocalStore によって実装する必要がある必須メソッドも指定するためです。