如何“隐藏” Groovy 类中的 metaClass 属性

发布于 2024-07-18 16:33:32 字数 233 浏览 7 评论 0原文

我正在创建一些简单的groovy 类,例如,

class Person {
    int age
    String name
}

它们在Java 方法中使用,该方法依赖于反射来提取对象属性,例如年龄和名称。 问题是 metaClass 也显示为属性。 更新 Java 方法以忽略此属性不是一种选择。 我尝试将 metaClass 属性设置为 null,但这不起作用。

I am creating some simple groovy classes, e.g.

class Person {
    int age
    String name
}

that are being used in a Java method that relies on reflection to pull out the object properties, e.g. age and name. The problem is that metaClass is also showing up as a property. Updating the Java method to ignore this property is not an option. I've tried setting the metaClass property to null but that didn't work.

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

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

发布评论

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

评论(2

巴黎夜雨 2024-07-25 16:33:32

如果您使用 Java 和 Groovy 中的这些类,为什么不在 Java 中而不是 Groovy 中创建 POJO。
我知道这并不能回答您的问题,但很高兴知道为什么决定将 Groovy 用于 POJO

If you are using these classes from Java and Groovy why not just create the POJO's in Java and not Groovy.
I know this doesn't answer your question but it would be nice to know why the decision to use Groovy for the POJOs

待天淡蓝洁白时 2024-07-25 16:33:32

MetaClass 在创建期间为 Groovy 类注入。 恕我直言,我认为你不能将其设置为空。 您调用的 setMetaClass 方法仅将您在类上设置的任何自定义元类设置为 Null,而不是在构造期间注入的元类。

MetaClass gets injected for a Groovy class during the creation. IMHO I don't think you can set it to Null. The setMetaClass method which you called only sets any custom metaclass you may have set on your class to Null and not the one which gets injected during construction.

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