I、次のコードを有する:比較整数オブジェクト
はpublic class Test {
public static void main(String[] args) {
Integer alpha = new Integer(1);
Integer foo = new Integer(1);
if(alpha == foo) {
System.out.println("1. true");
}
if(alpha.equals(foo)) {
System.out.println("2. true");
}
}
}
出力は、以下のように:
2. true
しかし例えば、異なる出力を生成するInteger object
int
の種類を変更します。
public class Test {
public static void main(String[] args) {
Integer alpha = new Integer(1);
int foo = 1;
if(alpha == foo) {
System.out.println("1. true");
}
if(alpha.equals(foo)) {
System.out.println("2. true");
}
}
}
新しい出力:
1. true
2. true
これはどのようにすることができますか?なぜ最初のコード例の出力は1. true
ではありませんか?
本当に最初の出力は2ではありませんか?本当ですか?さもなければ、何も意味をなさない。 – ILMTitan
はい、申し訳ありませんが、2を1に変更しました。 –
可能な重複:[Javaで2つの整数を比較すると自動アンボックスが発生しますか?](http://stackoverflow.com/q/1514910/1164465) –