Java括号表示法?

9
在JavaScript中,您可以使用点表示法或括号表示法引用对象的属性。这可以通过使用字符串变量来实现:
var myObject = { hello: "world" };
var prop = "hello";

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

Java中是否有类似于JavaScript的方括号表示法,可以使用字符串变量访问对象属性?

2
最接近您答案的方法可能是通过反射,但这可能不被建议。由于Java对类型比较严格,因此没有直接的类比。 - obataku
更重要的是,我认为问题是“为什么?” 如果只是出于好奇,那么反思或使用普通哈希映射就可以了。如果不是,我们需要更好地了解问题的背景。 - Liviu T.
4个回答

4
没有。最接近的方法可能是使用反射,在某种程度上说这很笨拙。您需要查找Field,然后获取其实例的值。
Field property = myInstance.getClass().getDeclaredField("prop");
Object value = property.get(myInstance);

我知道这不是你要找的,但很不幸,这是最接近的了。


1
不,Java中没有这样的语法,但有一个API(reflection)可以让你以一种不太直接的方式实现。

1

Java中没有类似的语法,也没有任何直接的方法来完成此操作。

Java提供了反射API,允许您在运行时使用代表对象属性和方法的Strings查询对象的属性/接口。

您还可以将(键,值)属性存储在数据结构中,例如HashMap,将Strings映射到对象。


1

1. 我认为Java中没有这样的语法。

2. 但我更喜欢使用键值对,也就是Map。

3. 在这种情况下,可以使用反射API。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接