在Java中以字符串的形式访问变量的值

baz*_*nga 6 java

我有一个包含变量名称的字符串.我想获得该变量的值.

int temp = 10;
String temp_name = "temp";
Run Code Online (Sandbox Code Playgroud)

是否可以10通过使用来访问该值temp_name

aio*_*obe 11

我建议你用一个Map<String, Integer>代替:

通过执行创建地图

Map<String, Integer> values = new HashMap<String, Integer>();
Run Code Online (Sandbox Code Playgroud)

然后改变

int temp = 10;
Run Code Online (Sandbox Code Playgroud)

values.put("temp", 10);
Run Code Online (Sandbox Code Playgroud)

并使用访问该值

int tempVal = values.get(temp_name);
Run Code Online (Sandbox Code Playgroud)

  • +1这是解决问题的更好方法,没有理由不采取这种方法. (4认同)
  • @ErickRobertson我同意.反射是对"非普通"需求的解决方案,而新手通常需要地图或关联数组. (3认同)

Eri*_*son 10

使变量成为成员变量并使用反射.

除非变量是类的成员变量,否则无法通过变量的名称获取值.然后,您可以使用该java.lang.reflect包来检索该值.