groovy - 列出 Canonical 和 TupleConstructor 生成的 Groovy 构造函数

标签 groovy

我有一个深层的 POGO(域模型)层次结构,大量使用 @Canonical@TupleConstructor。我现在想要列出可用于我的任何一个域模型类的所有动态生成的构造函数。

我发现了这个 Groovy 的小 gem :

println MyObject.metaClass.methods*.name.sort().unique()

运行时,它会精美地打印 MyObject 的所有(定义和生成)方法的列表。

但是,当我尝试将其用于构造函数时:

println MyObject.metaClass.constructors*.name.sort().unique()

...它只是打印出来:

[groovy.lang.ExpandoMetaClass$ExpandoMetaProperty@67c27493]

如何列出任何给定类的所有 @Canonical@TupleConstructor 生成的构造函数(及其各自的参数)?

更重要的是(不完全是,但几乎)...这个记录在哪里?!?

最佳答案

只需删除metaClass:

MyObject.constructors​*.name.sort().unique()​​​​​

它应该只显示一个值:'MyObject'(因为所有构造函数都具有名称 MyObject)

关于groovy - 列出 Canonical 和 TupleConstructor 生成的 Groovy 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38973933/

相关文章:

使用订阅者 channel 测试 Spring-Integration

hibernate - 在单元测试中使用Java 8 Time API的Grails 3.1.1

jenkins - 使用共享\vars 库在 Jenkins 中定义文件夹级别变量

regex - groovy - 正则表达式不起作用

java - Java Streams 中 Groovy 的 int.times

Jenkins DSL 工作 : GroovyCastException Cannot cast object

web-services - 无法使用Grails和CXF插件创建Web服务Bean

groovy - 如何访问名为 'properties' 的公共(public)类成员?

java - 在 Spock 框架中模拟

Java/Groovy String.Format 如何处理要格式化的字符串中的运行时%