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

5

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

class Person {
    int age
    String name
}

在使用反射提取对象属性的Java方法中,出现了metaClass作为一个属性的问题,例如age和name。更新Java方法以忽略此属性不是一个选择。我尝试将metaClass属性设置为null,但没有成功。

编译器将在其他上下文中添加其他成员(例如内部类中的内部外部引用)。也许您可以更新反射代码,仅反映包/受保护/公共属性? - Lawrence Dol
你找到了隐藏metaClass的方法吗? - Igor Artamonov
没错,我只是绕过了它。 - Joel
不要用Groovy创建它们,它们似乎只是普通的POJO。 - Umut Utkan
2个回答

1
如果您正在使用Java和Groovy中的这些类,为什么不直接在Java中创建POJO,而不是Groovy呢? 我知道这并没有回答您的问题,但知道为什么决定使用Groovy来创建POJO会很好。

0

在创建Groovy类时,MetaClass会被注入。我认为你不能将其设置为Null。你调用的setMetaClass方法只会将你在类上设置的任何自定义元类设置为Null,而不是在构建过程中注入的元类。


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