回答
如果你知道类是什么,你可以使用反射:
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. 作为字符串的变量名称,如何获取值?
- 3. 获取VB6变量的名称作为字符串值
- 4. 字符串变量名称
- 5. 从字符串中获取名称变量值
- 6. 使用字符串的名称获取变量的值
- 7. PHP字符串名称作为变量
- 8. 字符串作为变量名称
- 9. 从字符串中获取所有变量名称javascript
- 10. 使用变量的名称获取变量的值,作为变量值传递
- 11. 如何从python字符串获取命名变量的名称
- 12. 将字符串值转换为变量名称|字符串值包含变量名
- 13. 获取字符串变量的值
- 14. t-sql从变量名字符串获得变量值
- 15. 如何使用带变量名称的字符串获取变量地址?
- 16. JS:获取变量名称
- 17. Ruby:获取变量名称
- 18. 获取变量的名称
- 19. JavaScript中的字符串变量名称
- 20. vb.net按名称从字符串变量
- 21. 字符串到变量名称MATLAB
- 22. 转换变量的名称字符串
- 23. .replace()变量字符串名称
- 24. 从字符串名称访问变量
- 25. 字符串中的Java变量名称
- 26. 如何从字符串变量名称?
- 27. 从字符串构造变量名称
- 28. 双字符串变量名称(Javascript)
- 29. Python中的字符串变量名称
- 30. 名称使用字符串变量.NET
我相信你的问题的答案很简单。我无法理解你的问题......请重新说明。 – Yunchi 2012-08-09 03:49:25
我认为他的意思是一个eval()式的表达式...... – 2012-08-09 03:51:33
如果它是一个字段,您可以尝试使用反射。 – oldrinb 2012-08-09 03:55:16