[英]Compare Integer with primitive
我没有java
编译器,我想检查治疗如何java
的比较Integer
与原语对象。 有人可以确认以下比较的结果是正确的:
Integer a = 500;
long b = 500;
a == b //-> false
a.equals(b) //-> true
通常,在第一种比较类型的Java中, Boxing
和在第二种Unboxing
Boxing
中对原始值进行比较是真的吗?
看我的结果
Integer a = 500;
long b = 500;
System.out.println(a == b);
System.out.println(a.equals(b));
产量
true
false
这是因为第一次比较使用拆箱
b == a.intValue()
产生真实,因为在Java 500L == 500是真的。
第二个比较使用拳击
a.equals(Long.valueOf(b))
这会产生错误,因为a和b是不同类的实例。 请参见Integer.equals impl:
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.