2012-04-19 10 views
-4

私のアプリケーションが必要とする定数をホストするインタフェースを持っています。私は実行時にさまざまな条件に依存するので、変更することができたいと思います。私は定数を扱うメソッドを持つ小さなクラスを作成しました。このクラスでは、定数とのインターフェイスを実装していますが、アクセスできますが、コンテンツを変更することはできません。定数は変わらず安定しているはずですが、それでも変わる方法はありますか?インタフェースで定義された定数を変更する

Thxを

編集:もちろん

が、これが私の頭からではないですが、私はAndroidのメーカーに依存すべき既製ライブラリーを、変更する必要があります。そして私はそれを再実装する他の方法があるかどうか尋ねています。

+3

"change"と "constant"という言葉は、お互いにうまく対戦しません。したがって、「可変」という言葉(変えることができるもの)。 –

+0

誰かがタイトルを読んで実際の質問を読んでいないような、下落は不適切です。 –

答えて

1

定数はまさに彼らがスズについて言うことです!

静的、非公開、一般公開などのコンテントを使用しないでください。

2

"change"と "constant"という言葉は、お互いにうまくやっていません。したがって、用語「可変」(は、と変わる可能性があるもの)。 ;-)

あなたはfinal variablesを使用してあなたが探しているものを達成することができます。これらは、にのみ割り当て可能な変数です。彼らをinterfaceに置くことはできませんでしたが、それらを初期化されたシングルトンのメンバーにして、ファイナルを適切なランタイム値に設定することができました。

0

通常、コンパイラはコンパイル時の既知の定数をインライン化します。つまり、リフレクションを使用して値を変更しても、定数が使用されている場所が常に変更されるわけではありません。

これに対する解決策は、あなたの「定数」を動的にすることです。例えば

interface Constants { 
    int MAX_VALUE = Integer.getInteger("max.value", Integer.MAX_VALUE); 
    String USER_HOME = System.getProperty("user.home"); 
} 
関連する問題