我正在尝试做这样的事情:
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]. 然后,您可以轻松地构造您的字符串,获取它的值并使用它。