2017-11-01 14 views
-4

変数の名前を含むStringを提供することによって変数の値にアクセスするにはどうすればよいですか?このよう :変数をその名前で取得する

int var1 = 123; 
getVariableByName("var1"); 

は、それは私が私がHashMapのか何かを作成することができることを知っている123
...
を返す必要がありますしかし、私は、コードのカップルせずに、すぐにこれを行うことができますか?ただ、あなたが必要な場合は、巨大なHashMapを作るためにスマートではありません
(私はアンドロイドで働いている)

String string2="bla"; 
String string2="bla-bla"; 
String string3="bla-bla-bla" 

for(int i=1; i<=2; i++){ 
    TextView tv = new TextView; 
    TextView.setText(getValueOf("string"+i)); 
} 

は、私は同様のデータを持ついくつかのオブジェクトを作成する必要があるので、私はこれをしませんでしたたくさんのオブジェクトを作成します。それを最適化する方法があるはずです...

+2

これを行う必要があると思われる理由について、より多くの状況をお知らせください。 ...多分もっとコード。 –

+2

詳細なコンテキストが必要です。それはクラス - >リフレクションの分野ですか?これはメソッド内のローカル変数ではありませんか?>不可能です。どちらの場合も、あなたはそれをまったくやっておかないでください。 – luk2302

+0

私は彼が動的変数を取ることができる方法を必要としていると思いますし、それはそれの値を取得します –

答えて

0

Foo.class.getFieldまたはobj.getClassを経由して反射を経由してフィールドを検索することができます。私はちょうどその文字列の配列を作成し、それらをリストする必要があります!配列を操作するツールはたくさんあります!

0

Javaでローカル変数を使用することはできません。ローカル変数は、メソッド内で定義する変数です。名前はコンパイルステップでは存続せず、実行時には使用できません。

あなたは、私が問題を解決し()。のgetField

+0

ありがとう、私はまだJavaで新しいです、配列を使用するとは思わなかった。しかし、あなたは私を助けてくれました! :) – Vitalis11

関連する問題