使用Java反射检查Groovy对象属性

时间:2010-01-14 18:35:03

标签: groovy runtime compilation

我有一个Expando类,我需要从Java检查它的属性。 在Groovy中:

def worker = new Expando()
worker.name = "John"
worker.surname = "Doe"

在Java中:

Introspector.getBeanInfo(groovyObject.getClass())

是否可以在运行时从Groovy中的对象编译类?

2 个答案:

答案 0 :(得分:0)

Expando完全是动态的。它不会生成任何字节码getter或setter,因此不能用作JavaBean。使用bean introspector需要什么?如果在Groovy中编写它,您可以直接使用expando实现该逻辑。

答案 1 :(得分:0)

如果您使用的是Java 6,则可以尝试使用Groovy(example here)的JSR 223 / Script引擎。它允许您从Java评估Groovy代码。

根据Expando的位置/定义,可能能够通过评估getProperties()(从Groovy 1.7开始)获取其属性。