2012-02-05 11 views
2

Javaでは、新しい変数に別の変数の値である名前を付ける方法があるのだろうかと思っていました。以下のコードは私がやろうとしているものの非実用的な例です。新しい変数名としてのJava変数値

int a = 0; 
while(true){ 
    String (a) = "newValue"; 
    a = a + 1; 
} 

または

String b = "newVariableName"; 
int (b) = 1; 

は、与えられた任意の助けをありがとうございました。

+1

達成しようとしているものは?なぜあなたはそのような機能が必要ですか? – Tim

+0

あなたが実際にそれを必要としないことがほぼ保証されています。それはXYの問題です。 * Edit。* Zero-One-Manyのプログラミングのルールを念頭に置いてください。 –

+0

Javaはそのようには機能しません。変数名はそれほど重要ではないと思うだけでなく、実際に*コンパイルされた*コードでは、その名前はほとんど存在しません。オブジェクトをStringに関連付けるには、マップを使用するか、または連続した番号を持つオブジェクトを使用するには、配列を使用します。 –

答えて

0

Javaで動的変数名を作成することはできません。文字列をキーとしてこれらの変数をMapに配置することをお勧めします。キーは好きな文字列にすることができます。

+0

後悔して申し訳ありません。私は仕事を終わらせる別の方法を見つけましたが、多くの読書をした後でも、動的変数はJavaでは使用できません。私は前にPHPでやっていたし、同様の方法を探していた。 HashMapsのようなメソッドを使ってデータをマッピングすることはできますが。他の人に示唆されているように助けてくれてありがとう。 – Arran

1

あなたは配列やリスト、辞書を作成しようとしています。

+0

それは本当に答えではありません。それに直面して、OPは何らかの反射を求めています。 –

+2

@KerrekSB:これは彼が求めていることではありません。それは彼が実際に必要とするものです。 – SLaks

0

これはできません。ディクショナリまたはマップを使用して値を格納します。

0

いいえ、Javaでこのようなことを行う方法はありません。あなたができる最も近いのは、実行時にコードを作成し、動的な名前で作られたフィールドを持つ新しいクラスをロードすることです。

HashMapインスタンスのように単純なものを考えてみてください。

3

これは不可能です。新しいオブジェクトを作成し、それを配列や何らかのリストに追加することは可能です。次に、新しいオブジェクトを添字で参照することができます。 ので、ラフな例は次のようになります。

Object[] a = new Object[30]; 

for(int i = 0; i < 30; i++) 
{ 
a[i] = new Object(); 
} 

、あなたがそれについて考えるならば、あなたはどのようにコンパイラが特定の真の変数の値があることを行っているかを知ることができ、

a[some number].someFunction(); 

を使用することができます実際のプログラム実行時間外しかし、実際にあなたが望むことをする必要はないでしょう。

0

Fieldの新しいインスタンスを作成する方法がないので、リフレクションが役立つとは思わないでしょう。だから何かのように

Map<String,Field> 

仕事がありません。代わりにjavascriptを使用してください:

関連する問題