你如果问题是,是否能得到一个变量在运行时知道它的名字的价值,那么好消息是....肯定,你可以...你需要做一些所谓的REFFLECTION。 ..
它可以让你的开发人员,使类的instrocpection,甚至“浏览”该类持有
你的情况
你需要找到一个“变量”的所有信息(或现场)的名称并阅读其值...
查看文档以获得更多信息,我会建议你考虑一下,如果你真的需要这样做...通常反射是用来当你想从另一类访问的信息,而不是关于浏览自己...
你也许可以重新设计一个小应用程序并定义了一些常量和方法,这样其他可以看到你所暴露给他们,并让他们提供...
例子:
public class Jung {
Double new_val = 10.0;
String a = "new";
String b = "val";
Double v1 = 25.0;
Double result = 0.0;
public void getVal() {
// String variable c contain double variable name
String c = a + "_" + b;
Double cAsVal = 0.0;
try {
cAsVal = dale(c);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
result = v1.doubleValue() * cAsVal.doubleValue();
System.out.println(result);
}
public static void main(String[] args) {
Jung j = new Jung();
j.getVal();
}
public Double dale(String c)
throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
Field field = this.getClass().getDeclaredField(c);
field.setAccessible(true);
Object value = field.get(this);
return (Double) value;
}
}
'结果= V1 * C;'这是不是一个有效的语义,因为v1是数字,c是字符串.. –