私はそのようなテストクラスを持っています:
public class CompareObjects {
public static class Obj {
public int i;
public Obj(int i) {
this.i = i;
}
}
public static void main(String[] args) {
Obj o1 = new Obj(0);
Obj o2 = new Obj(0);
if(o1 == o2) {
System.out.println("Equal");
}else{
System.out.println("Not equal");
}
}
}
テストでは「等しい」が返されますが、返されませんでした。なぜJavaは、同じコンポーネントを持つ2つのオブジェクトを同じではないと見なさないのですか?私はここで何か間違ったことをしていますか?Javaを学び始めたとき、何かを完全に見落としていたような気がします。
また、equals()メソッドを使用して2つを相互にテストしたところ、同じ結果が得られました。この質問の理由は、contains()メソッドを使用してArrayListをテストし、あるオブジェクトが別のオブジェクトと同じコンポーネントを持ち、したがって等しいかどうかを確認できるようにするためです。何か案は?