你如果問題是,是否能得到一個變量在運行時知道它的名字的價值,那麼好消息是....肯定,你可以...你需要做一些所謂的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是字符串.. –