java - 组合两个变量来获取第三个的名称?

时间:2012-09-26 02:46:11

标签: java variables reflection

我正在尝试做这样的事情:

int x_1 = 1;
int x_2 = 2;

String s1 = "x";
String s2 = "_1";

s1& s2是来自用户或循环的变量,我希望能够通过执行类似int的操作来调用正确的(s1+s2)变量。

有可能吗?

4 个答案:

答案 0 :(得分:7)

也许您可以使用Map执行此操作。

Map<String,Integer> map = new HashMap<>();
map.put("x_1",1);
map.put("x_2",2);
String s1 = "x";
String s2 = "_1";
map.get(s1+s2);

答案 1 :(得分:1)

基本上,您需要能够在Object

的实例中找到一个字段

像...一样的东西。

Class clazz = obj.getClass();
Field field = clazz.getDeclaredField(name);

然后,您可以使用Field.setInt(Object, int)Field.getInt(Object)方法检索值。

您可能希望阅读The Reflection API

答案 2 :(得分:0)

反思不一定要复杂。看看beanutils。为了实现这一点,变量需要是对象的一部分,而不仅仅是局部变量。像PropertyUtils之类的东西可能会起作用。

答案 3 :(得分:0)

尝试使用Hashtable<String,Integer>存储名称对,如["x_1", 1]。 然后,您可以轻松地构造字符串,获取其值并使用它。