2012-06-21 6 views
6

変数名を含む文字列があります。私はその変数の値を取得したい。変数の値にJavaの文字列としてその名前でアクセスする

int temp = 10; 
String temp_name = "temp"; 

それはtemp_nameを使用して値10にアクセスすることは可能ですか?

+0

なぜですか?いかなる理由で?あなたは何の目的を達成しようとしていますか? – EJP

答えて

11

私はあなたの代わりにMap<String, Integer>を使用することを示唆している:

values.put("temp", 10); 

int temp = 10; 

を変更し、Vへのアクセス次に

Map<String, Integer> values = new HashMap<String, Integer>(); 

を実行してマップを作成します。使用すると

int tempVal = values.get(temp_name); 
+4

+1これは問題のより良い解決策であり、このアプローチをとることができない理由はありません。 –

+3

@ErickRobertson私は同意します。リフレクションは「普通ではない」ニーズに対する解決策ですが、初心者は通常マップや連想配列が必要です。 –

10

変数をメンバ変数にしてリフレクションを使用します。

変数の名前で値を取得することは、クラスのメンバー変数でない限り実行できません。次に、java.lang.reflectパッケージを使用して値を取得できます。

関連する問題