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,避免报警告
学习时的痛苦是暂时的 未学到的痛苦是终生的
作者:卷心菜的奇妙历险
本文版权归作者和博客园共有,遵循 CC 4.0 BY-SA 版权协议,欢迎转载 转载请附上原文出处链接和本声明,否则保留追究法律责任的权利。