2012年9月14日金曜日

GroovyのToStringアノテーション

クラスに「ToString」アノテーションを付加すると、コンパイル時にtoStringメソッドが生成されます。

デフォルトでは、すべてのフィールドがtoStringメソッドで文字列変換されますが、アノテーションの属性を設定することで除外設定などもできます。



import groovy.transform.ToString
@ToString
class Person {
  String name
  String address
}
def p = new Person(name: 'name', address: 'address')
assert p.toString() == 'Person(name, address)'

一部属性を除外する例

excludes属性を使用して、除外する項目を設定できます。
import groovy.transform.ToString
@ToString(excludes = "address")
class Person {
  String name
  String address
}

先ほどのパワーアサートを実行すると、失敗します。
Caught: Assertion failed: 

assert p.toString() == 'Person(name, address)'
       | |          |
       | |          false
       | Person(name)
       Person(name)

Assertion failed: 

assert p.toString() == 'Person(name, address)'
       | |          |
       | |          false
       | Person(name)
       Person(name)