我正在尝试做这样的事情:
int x_1 = 1;
int x_2 = 2;
String s1 = "x";
String s2 = "_1";
s1
& s2
是来自用户或循环的变量,我希望能够通过执行类似int
的操作来调用正确的(s1+s2)
变量。
有可能吗?
答案 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]
。
然后,您可以轻松地构造字符串,获取其值并使用它。