SE Homework 1 —An Error Impressed Me

在对两个对象进行比较、判断是否相等时,直接用 == 放在两个对象中间,例如下面的代码:

Infor i1 = new Infor(111,"AA");

Infor i2 = new Infor(111,"AA");

System.out.println(i1 == i2);

输出的结果总为false,查了之后知道了 == 只是比较了两个引用变量的内存地址是不是相同,也就是是不是“同一个对象”而不是“相等”。要比较是否相等,需要通过重写equals()方法,也就是下面的代码:

public boolean equals(Object obj){

if(this == obj){

return true;

}else if(obj instanceof Infor){

Infor i1 = (Infor) obj;

return this.orderld == o1.orderld &&

this.orderName.equals(o1.orderName);

}else {

return false;

}

}

然后再调用equals方法返回值就是true了!

System.out.println(i1.equals(i2));

上一篇:解决cookie跨域访问


下一篇:C语言总结(6)