仅将变量名称作为String时获取变量的值

时间:2012-08-09 03:42:32

标签: java

int text01=2012;
String entrance= "text01";

如何通过字符串'入口'获取'{1}}'text01'?

5 个答案:

答案 0 :(得分:4)

如果您知道该课程是什么,您可以使用反射:

public class Test
{
    int text01 = 2012;
}

在其他地方,您可以通过以下方式获得该字段的价值:

String entrance = "text01";
Test t = new Test();

Field f = t.getClass().getDeclaredField(entrance);
System.out.println("value = "+f.getInt(t));

// you can even change the value:
t.text01 = 2013;
System.out.println("value = "+f.getInt(t));

这将打印出2012,然后打印2013

答案 1 :(得分:2)

整数变量text01和存储在字符串变量中的值text01是两回事。

无法获取此类变量的值,因为 int 变量text01和存储在字符串变量{{}中的值都是1}}彼此无关。

<强>更新

如果有人正在寻找一种简单的方法,使用地图是一个不错的选择。只需将变量名称存储为键,将其值存储为键值

text01

获取值

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


    int text01=2012;
    String entrance= "text01";

    m.put(entrance, text01);

答案 2 :(得分:0)

我认为你可能想要的是这样的: public Map values = new HashMap(); values.add("text01", 2012);

System.out.println(values.get("text01"));

答案 3 :(得分:0)

  

int text01 = 2012;

     

String entrance =“text01”;

2012和test01是两个具有不同引用的不同值。

答案 4 :(得分:0)

您可以使用apache commons org.apache.commons.beanutils.PropertyUtils类。

int text01 = 2012;
String entrance = "text01";

使用: 如果你的类对象是Test test = new Test();

Object value = PropertyUtils.getProperty(test, entrance);