1
我有一个深层次的POGO(域模型),它们大量使用了@Canonical
和@TupleConstructor
。我现在想列出所有可用于我的域模型类的动态生成的构造函数。列表由Canonical和TupleConstructor生成的Groovy构造函数
我发现这个小的Groovy宝石:
println MyObject.metaClass.methods*.name.sort().unique()
其中,跑的时候,精美的所有打印(定义和生成的)方法MyObject
列表。
但是,当我尝试用这个构造函数:
println MyObject.metaClass.constructors*.name.sort().unique()
...它只是打印出:
[[email protected]]
我怎么能列出所有的@Canonical
- 和@TupleConstructor
- 为任何给定的类生成构造函数(及其各自的参数)?
更重要的是(好不好,但几乎)...这是记录在哪里?!?
嗯,谢谢@yariash(+1) - 然而,这仅仅打印出' [com.me.myapp.MyObject]',而我正在寻找所有构造函数**和它们各自的参数列表**(对不起,我会在问题中澄清)。所以我会寻找* something * like:'com.me.myapp.MyObject(String,Boolean,String,Fizz)'等。此外,这是否在任何地方记录? – smeeb
也许如果你删除''.name.sort()。unique()''部分你会得到你想要的东西?方法'name'只是返回'MyObject'。 –
如果我删除它,只是使用'println MyObject.constructors *',那么会给出编译器错误:'Groovy:期待'}',找到'*'@ line ...'。有任何想法吗? – smeeb