Java Bracket表示法?

时间:2012-08-04 03:04:39

标签: java

在javascript中,您可以使用点表示法或括号表示法引用对象的属性。这可以通过使用字符串变量来实现,例如:

var myObject = { hello: "world" };
var prop = "hello";

// both will output "world".
console.log( myObject[ prop ] );
console.log( myObject.hello );

java中是否有类似的语法使用字符串变量访问对象属性,类似于javascript的括号表示法?

4 个答案:

答案 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