在javascript中,您可以使用点表示法或括号表示法引用对象的属性。这可以通过使用字符串变量来实现,例如:
var myObject = { hello: "world" };
var prop = "hello";
// both will output "world".
console.log( myObject[ prop ] );
console.log( myObject.hello );
java中是否有类似的语法使用字符串变量访问对象属性,类似于javascript的括号表示法?
答案 0 :(得分:4)
不,没有。关于最接近的事情就是使用反射,但至少可以说是笨重的。您必须查找Field
,然后获取实例的值。
Field property = myInstance.getClass().getDeclaredField("prop");
Object value = property.get(myInstance);
不是你想要的,我知道,但不幸的是,它是最接近的。
答案 1 :(得分:1)
不,Java中没有这样的语法,但有一个API(reflection)可以让你这样做,虽然方式不那么直接。
答案 2 :(得分:1)
java中没有类似的语法,也没有任何直接的方法。
java 提供了一个反射API,允许您使用Strings
在运行时查询对象的属性/接口,代表例如对象的属性和方法。
您还可以将(键,值)属性存储在数据结构中,例如HashMap
,将Strings
映射到对象。
答案 3 :(得分:1)
1。我认为java中没有类似的语法。
2。但我更喜欢使用Key-Value
对,那就是Map
。
3。 Reflection API
。