2012年9月16日日曜日

GroovyのTupleConstructorアノテーション

TupleConstructorを付加すると、属性(フィールド)値を引数に取るコンストラクタが追加されます。
コンストラクタの引数の順番は、フィールドの宣言の順番となります。

TupleConstructorを付加してクラスを宣言します。
import groovy.transform.TupleConstructor

@TupleConstructor
class Person {
  String name
  String address
  String email
  Date birthDay
}

使い方は、フィールドの宣言順に値を設定するだけ。
なお、Groovy2.0の新機能のTypeCheckedアノテーション(コンパイル時に型チェックをしてくれるやつ)を付加すると、ちゃんとコンパイルエラーになります。
class Hoge {

  @TypeChecked
  public static void main(String[] args) {

    def person = new Person('name', 'address', 'mail@mail.com', new Date())
  }
}