0

Groovyの古い(1.xx)バージョンでは、metaClass.constructorを使用してコンストラクターを追加できます。

Example.metaClass.constructor << { String arg0 -> new Example(arg0, "") }

新しいGroovy2.0拡張モジュールを使用してコンストラクターを登録する方法はありますか?

これはうまくいくようです:

Groovy 2の通常の拡張クラスを定義し、静的初期化子にコンストラクターを追加するだけです

public class ExampleHelper {
    static {
        Example.metaClass.constructor << { String arg0 -> new Example(arg0, "") }
    }
}
4

1 に答える 1

0

私が知っていることではありません...

静的ファクトリメソッドをExampleクラスに追加できます。

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 に答える