No Programming, No Life

プログラミング関連の話題や雑記

GroovyでJavaで言うところのequalsと==はどう書く?

Javaで言うところの ==演算子 (参照の同一性) は Groovyでは Object#is()、またJavaで言うところの Object#equals() (オブジェクトの同一性) は Groovyでは ==演算子となっている。

Javaでの例

SameTest a = new SameTest(1);
SameTest b = new SameTest(1);
assert a.equals(b)  : "a と b の内容は同じ";
assert a != b       : "a と b の参照先は異なる";

Groovyでの例

def a = new SameTest(num:1)
def b = new SameTest(num:1)
assert a == b   : 'a と b の内容は同じ'
assert !a.is(b) : 'a と b の参照先は異なる'