回答
如果你知道類是什麼,你可以使用反射:
public class Test
{
int text01 = 2012;
}
而且別的地方,你可以得到該字段的值:
String entrance = "text01";
Test t = new Test();
Field f = t.getClass().getDeclaredField(entrance);
System.out.println("value = "+f.getInt(t));
// you can even change the value:
t.text01 = 2013;
System.out.println("value = "+f.getInt(t));
這將打印出2012
,然後2013
。
我希望它會比這個簡單得多:) – 2012-08-09 03:52:52
我想你可能想是這樣的: public Map values = new HashMap(); values.add("text01", 2012);
System.out.println(values.get("text01"));
是,Map是一個好方法,但我想要找到一個更智能的方法來獲取值,而不是在獲取此值之前將值放入Map中。 @TehHippo – Xxg 2012-08-09 05:06:03
我會質疑你爲什麼要以這種方式訪問它。這不是真的如何設計Java。思考可以做你需要的東西,看看上面的帖子,但我會考慮以不同的方式解決問題。使用地圖是一種明智的做法,最終會產生相同的結果。 原因是因爲變量text01的值爲2012,但變量名稱(text01)正在像變量一樣使用。兩個變量,地圖是最合乎邏輯的。反思可能是你想要的,但它可能很容易被過度殺傷。 – 2012-08-09 05:07:35
的整數變量text01
並存儲在一個字符串變量中的值text01
是兩回事。
這是不可能得到一個變量的值,像這樣因爲無論是INT變量text01
並存儲在字符串變量的text01
價值無關彼此。
更新:
萬一有人正在尋找一個簡單的方法來使用這個圖是一個不錯的選擇。只是變量名稱爲鍵,值存儲爲鍵值
Map<String, Integer> m = new HashMap<String, Integer>();
int text01=2012;
String entrance= "text01";
m.put(entrance, text01);
來獲取值
m.get(entrance);
INT text01 =成2012;
字符串入口= 「text01」;
2012和test01是具有不同參考的兩個不同值。
你可以使用apache commons org.apache.commons.beanutils.PropertyUtils類來做到這一點。
int text01 = 2012;
String entrance = "text01";
只需使用: 如果你的類的對象是Test測試=新的測試();
Object value = PropertyUtils.getProperty(test, entrance);
- 1. 基於變量名稱的字符串獲取變量?
- 2. 獲取VB6變量的名稱作爲字符串值
- 3. 字符串變量名稱
- 4. 使用字符串的名稱獲取變量的值
- 5. 從字符串中獲取名稱變量值
- 6. 字符串作爲變量名稱
- 7. PHP字符串名稱作爲變量
- 8. 從字符串中獲取所有變量名稱javascript
- 9. 將字符串值轉換爲變量名稱|字符串值包含變量名
- 10. 獲取字符串變量的值
- 11. t-sql從變量名字符串獲得變量值
- 12. 如何使用帶變量名稱的字符串獲取變量地址?
- 13. Ruby:獲取變量名稱
- 14. 字符串到變量名稱MATLAB
- 15. 轉換變量的名稱字符串
- 16. 從字符串構造變量名稱
- 17. 名稱使用字符串變量.NET
- 18. R dplyr - 在mutate/summarize中獲取字符串的變量名稱
- 19. 從字符串獲取變量的名稱
- 20. Handlebars JS獲取字符串變量的名稱
- 21. 在ActionScript中獲取變量名稱的字符串?
- 22. 任何方式從字符串值中提取變量名稱?
- 23. 將變量的名稱打印爲字符串,或將變量鏈接到字符串變量以「打印」
- 24. 如何使用字符串的值作爲變量名稱
- 25. 將數組的名稱設置爲字符串變量的值
- 26. C#變量名字符串
- 27. 薩斯插值變量名字符串
- 28. 如何獲取單個字符串中包含的變量名稱及其值?
- 29. Python:將變量或變量的屬性的名稱轉換爲字符串
- 30. 字符串變量無法獲得值
我相信你的問題的答案很簡單。我無法理解你的問題......請重新說明。 – Yunchi 2012-08-09 03:49:25
我認爲他的意思是一個eval()式的表達式...... – 2012-08-09 03:51:33
如果它是一個字段,您可以嘗試使用反射。 – oldrinb 2012-08-09 03:55:16