之前一直记错了,以为Integer可以和int可以互换,除了用在反射的时候,今天写东西的时候发现判等的时候也会出现一点小问题。
public class TestInteger {
public static void main(String[] args) {
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i==j);
System.out.println(i.equals(j));
System.out.println(i==1);
}
}
输出结果:
false
true
true
第一次判等,两个都是Integer对象,所以比较的是他们的地址值,两个不是一个地址,所以返回false。
为避免此类错误,Integer对象的判等也用equals吧。