我正在尝试做这样的事情:
int x_1 = 1;
int x_2 = 2;
String s1 = "x";
String s2 = "_1";
s1
&s2
将是来自用户或循环的变量,我希望能够int
通过执行类似(s1+s2)
.
是否可以?
我正在尝试做这样的事情:
int x_1 = 1;
int x_2 = 2;
String s1 = "x";
String s2 = "_1";
s1
&s2
将是来自用户或循环的变量,我希望能够int
通过执行类似(s1+s2)
.
是否可以?
也许你可以使用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);
所以基本上,你需要能够在一个实例中找到一个字段Object
就像是...
Class clazz = obj.getClass();
Field field = clazz.getDeclaredField(name);
然后,您可以使用Field.setInt(Object, int)
andField.getInt(Object)
方法来检索值。
您可能想阅读反射 API
反射不必很复杂。看看beanutils。为此,变量需要成为对象的一部分,而不仅仅是局部变量。像PropertyUtils这样的东西可能会起作用。
尝试使用Hashtable<String,Integer>
来存储名称对,例如["x_1", 1]
. 然后,您可以轻松地构造您的字符串,获取它的值并使用它。