Groovy中的AST转换:创建宏以提供基本构造函数
我想制作一个宏,从本质上扩展这一点:Groovy中的AST转换:创建宏以提供基本构造函数,groovy,macros,metaprogramming,abstract-syntax-tree,Groovy,Macros,Metaprogramming,Abstract Syntax Tree,我想制作一个宏,从本质上扩展这一点: @WithBasicConstructor class Person { private String name private String address } 为此: class Person { private String name private String address Person(String name, String address) { this.name = name this.address
@WithBasicConstructor
class Person {
private String name
private String address
}
为此:
class Person {
private String name
private String address
Person(String name, String address) {
this.name = name
this.address = address
}
}
我一直在阅读@Immutable
的代码,以了解它是如何完成的。有人用过新的AstBuilder吗
有什么办法可以实现吗?AstBuilder for string/code/spec之间是否有首选选项?您可以使用(或复制)groovy 1.8中的@groovy.transform.TupleConstructor
。关于偏好。。。我喜欢
buildFromSpec
,它带来的惊喜更少。但是我建议您尝试一下
buildFromCode
,测试它的局限性和怪癖,并对它们进行一些处理。这个@WithBasicConstructor会提供哪些@Immutable尚未提供的理想属性?@Immutable会对类应用大量其他内容,而不是我想要的