==
2 つの を比較するときに にはいくつか問題があることは知っていますStrings
。 の方がString.equals()
良いアプローチのようです。さて、私は JUnit テストを行っており、 を使用する傾向がありますassertEquals(str1, str2)
。これは、2 つの文字列に同じコンテンツが含まれていることを確実に確認する方法ですか? 私なら を使用しますassertTrue(str1.equals(str2))
が、そうすると、失敗した場合に期待値と実際の値を確認する利点が得られません。
関連して、 の問題をわかりやすく説明しているページまたはスレッドへのリンクを持っている人はいますかstr1 == str2
?
ベストアンサー1
Java で比較するときは常に を使用する必要があります。.equals()
Strings
JUnit は.equals()
メソッドを呼び出して、 メソッド内の等価性を判定しますassertEquals(Object o1, Object o2)
。
したがって、 を使用すると間違いなく安全ですassertEquals(string1, string2)
。(String
は であるためObject
)
==
以下は、との違いに関するStackoverflow の優れた質問へのリンクです.equals()
。