0

在较旧的 (1.xx) 版本的 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, "") }
    }
}
4

1 回答 1

0

从来没听说过...

您可以将静态工厂方法添加到示例类,即:

class ExampleExtensionStatic {
  public static Example newInstance( Example type, String arg0 ) {
    new Example( arg0, '' )
  }
}

staticExtensionClasses然后(在文件字段中添加指向此类的链接后org.codehaus.groovy.runtime.ExtensionModule),您可以执行以下操作:

Example.newInstance( 'arg0' )

这是值得在邮件列表中询问的内容,以查看构造函数是否值得添加到模块扩展系统中。

于 2012-07-01T12:41:33.440 回答