我有一个Expando类,我需要从Java检查它的属性。 在Groovy中:
def worker = new Expando()
worker.name = "John"
worker.surname = "Doe"
在Java中:
Introspector.getBeanInfo(groovyObject.getClass())
是否可以在运行时从Groovy中的对象编译类?
答案 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开始)获取其属性。