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

发布于 2024-08-18 01:51:44 字数 276 浏览 2 评论 0原文

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

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

在 Java 中:

Introspector.getBeanInfo(groovyObject.getClass())

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

I have an Expando class which I need to inspect its properties from Java.
In Groovy:

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

In Java:

Introspector.getBeanInfo(groovyObject.getClass())

Is it possible to compile at runtime the class from the object in Groovy?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

弃爱 2024-08-25 01:51:44

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

The Expando is completely dynamic. It does not generate any bytecode getters or setters and therefore cannot be used as a JavaBean. What do you need to use the bean introspector for? You may be able to implement that logic using the expando directly if you write it in Groovy.

自此以后,行同陌路 2024-08-25 01:51:44

您可以尝试使用 Groovy 的 JSR 223 / 脚本引擎(示例 )如果您使用的是 Java 6。它允许您从 Java 评估 Groovy 代码。

根据 Expando 的位置/定义,您可能可以通过计算 getProperties() 来获取其属性(从 Groovy 1.7 开始)。

You might try the JSR 223 / Script engine with Groovy (example here) if you are using Java 6. It allows you to evaluate Groovy code from Java.

Depending on the location/definition of the Expando, you might be able to get its properties by evaluating getProperties() (as of Groovy 1.7).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文