クラスにInheritConstructorsアノテーションを付加すると、親クラスが実装しているコンストラクタをコンパイル時に追加してくれます。
例
Fugaは、引数を2つうけるコンストラクタを持っていないが「InheritConstructors」を設定しているので、親クラスのHogeが実装しているコンストラクタが追加されていることがわかる。
import groovy.transform.InheritConstructors
class Hoge {
def hoge1
def hoge2
Hoge(hoge1, hoge2) {
println "Hoge.Hoge"
this.hoge1 = hoge1
this.hoge2 = hoge2
}
@Override
public String toString() {
return "Hoge{" +
"hoge1=" + hoge1 +
", hoge2=" + hoge2 +
'}';
}
}
@InheritConstructors
class Fuga extends Hoge {
}
def fuga = new Fuga("hoge1", "hoge2")
println "fuga = ${fuga}"