3

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

int x_1 = 1;
int x_2 = 2;

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

s1&s2将是来自用户或循环的变量,我希望能够int通过执行类似(s1+s2).

是否可以?

4

4 回答 4

8

也许你可以使用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);
于 2012-09-26T02:53:34.190 回答
1

所以基本上,你需要能够在一个实例中找到一个字段Object

就像是...

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

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

您可能想阅读反射 API

于 2012-09-26T02:53:33.933 回答
0

反射不必很复杂。看看beanutils。为此,变量需要成为对象的一部分,而不仅仅是局部变量。像PropertyUtils这样的东西可能会起作用。

于 2012-09-26T02:52:59.413 回答
0

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

于 2012-09-26T02:53:36.790 回答