在较旧的(1.x.x)版本的Groovy中,您可以使用metaClass.constructor添加构造函数
Example.metaClass.constructor << { String arg0 -> new Example(arg0, "") }
有没有办法使用新的Groovy 2.0扩展模块注册构造函数?
这似乎有效:
为Groovy 2正常定义扩展类,只需在静态初始化器中添加构造函数
public class ExampleHelper {
static {
Example.metaClass.constructor << { String arg0 -> new Example(arg0, "") }
}
}
答案 0 :(得分:0)
不是我知道......
您可以向Example类添加静态工厂方法,即:
class ExampleExtensionStatic {
public static Example newInstance( Example type, String arg0 ) {
new Example( arg0, '' )
}
}
然后(在staticExtensionClasses
文件的org.codehaus.groovy.runtime.ExtensionModule
字段中添加此类的链接后),您可以这样做:
Example.newInstance( 'arg0' )
这是值得在邮件列表上查询的内容,以查看构造函数是否值得添加到Module Extension系统。