をあなたがLong
とlong
の違いを認識する必要が - long
はLong
がラッパ型で、プリミティブ型です。 (C#ではボックス化された値のようなビットですが、厳密に型指定されています)getId()
の戻り値の型は何ですか?
単に:あなたはテストでこれをやっている場合
assertEqual(id1, id2);
問題ないはずです。そうでなければ、使用できます。
if (id1.equals(ids2))
彼らは間違いなくないヌルだ、またはGuavaを使用する場合:
if (Objects.equal(id1, id2))
NULLかどうかを処理するために。 (もちろん、Objects.equal
を自分で書くことができますが、あなたにもそれを使用する場合がありますので、あなたは間違いなく、グアバとにかくのホールドを取得する必要があります...)
それは特定のラッパーオブジェクトが再利用されていることは注目に値します - 例えばので、 :
// This will work
Long x = 5L;
Long y = 5L;
assertTrue(x == y); // Reference comparison
// This *probably* won't but it could!
x = 10000L;
y = 10000L; assertTrue(x == y); //参考比較
実際、この質問は、比較のためではなく、同等性のテストについてのものであるため、混乱します。 http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html#compareTo(T) –