2012年5月13日日曜日

[Groovy]booleanを返す式

Javaと比べて、オブジェクトの状態チェック(nullや空かなど)が簡単にできる。

//******************************************************************************
// 文字列
//******************************************************************************
assert !null      // nullはfalse
assert !''        // 空文字もfalse
assert 'a'        // 1文字以上あるとtrue
assert """
"""               // 改行があるからtrue

//******************************************************************************
// 数値
//******************************************************************************
assert !0         // 0はfalse
assert 0.1        // 非0はtrue
assert 1L         // 非0はtrue

//******************************************************************************
// コレクション系
//******************************************************************************
assert ![]        // 空のリストはfalse
assert ![:]       // 空のMapはfalse
assert [1]        // 要素があるのでtrue
assert [1:1]      // 要素があるのでtrue

//******************************************************************************
// オブジェクト
//******************************************************************************
assert new Object()           // null意外なのでtrue
assert !new Object() {        // asBooleanでfalseを返しているので、常にfalse
  boolean asBoolean() {false}
}