Long类型数据与Integer 类型数据的比较问题
今天遇到了一个Long与Integer 的比较问题
上面代码是,在if 判断中对Long 和 Integer 采用了equals进行了比较,但是比较结果始终为false
经过阅读Long.equals()的源码发现,Long重写了equals方法:
public boolean equals(Object obj) {
if (obj instanceof Long) {
return value == ((Long)obj).longValue();
}
return false;
}
它是先对obj 进行判断 当obj是Long 的实例时,才会通过.longValue()获取到Long对象的基本数据类型long的值之后再进行比较的,如果传入的类型不是Long的实例,那么则会返回 false
修改后的代码如下:
版权声明:本文为dong277507513原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。