変数名を含む文字列があります。私はその変数の値を取得したい。変数の値にJavaの文字列としてその名前でアクセスする
int temp = 10;
String temp_name = "temp";
それはtemp_name
を使用して値10
にアクセスすることは可能ですか?
変数名を含む文字列があります。私はその変数の値を取得したい。変数の値にJavaの文字列としてその名前でアクセスする
int temp = 10;
String temp_name = "temp";
それはtemp_name
を使用して値10
にアクセスすることは可能ですか?
私はあなたの代わりに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);
+1これは問題のより良い解決策であり、このアプローチをとることができない理由はありません。 –
@ErickRobertson私は同意します。リフレクションは「普通ではない」ニーズに対する解決策ですが、初心者は通常マップや連想配列が必要です。 –
変数をメンバ変数にしてリフレクションを使用します。
変数の名前で値を取得することは、クラスのメンバー変数でない限り実行できません。次に、java.lang.reflect
パッケージを使用して値を取得できます。
なぜですか?いかなる理由で?あなたは何の目的を達成しようとしていますか? – EJP