Java では、演算子は==
オブジェクトの ID を比較するため、同じ内容を持つ String 型のオブジェクトが 2 つある場合、==
それらに対して false を返します。
String x = new String ("foo");
String y = new String ("bar");
if (x == y)
System.out.println ("Equal");
else
System.out.println ("Now equal"); // This will be printed
String オブジェクトを ID ではなくコンテンツで比較するには、次equals()
のようなメソッドを使用する必要があります。
if (x.equals (y))
System.out.println ("Equal"); // This will be printed
else
System.out.println ("Now equal");
x
isnull
の場合はx.equals (y)
スローされNullPointerException
、is でない場合はx == y
返され、 isの場合は返されることに注意してください。防ぐには、次のようなことをする必要があります。false
y
null
true
y
null
NullPointerException
if (x == null && y == null || x != null && x.equals (y))
System.out.println ("Equal"); // This will be printed
else
System.out.println ("Now equal");