IDEA 解决Number objects are compared using '==', not 'equals()' 警告

当代码被工具标黄色高亮时,代表需要优化或重构了

 

== 是值相等。对于Integer这样的数据类型而言,意义是两个Integer对象的内存地址相等。也就是说如果你有两个不同的Integer的对象,

如果是两个数字对象用==比较,比较的是对象地址(是否同一个对象,而不是”数值“)

哪怕他们的值一样,用==判断也是不相等的。


如果是基本类型int,用equals也是可以的。因为编译器会自动把int装箱为Integer。

Integer a = new Integer(10);
Integer b = new Integer(10);
System.out.println(a.equals(b)); ===> TRUE
System.out.println(a == b); ===> FALSE

结论,Integer对象尽量使用equals,避免报警告

posted @ 2020-02-07 16:56  卷心菜的奇妙历险  阅读(5464)  评论(0编辑  收藏  举报