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 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>