IDEA 解决Number objects are compared using '==', not 'equals()' 警告
2024-09-06 20:42:26
当代码被工具标黄色高亮时,代表需要优化或重构了
==
是值相等。对于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,避免报警告
最新文章
- Dripicons – 精美的扁平风格的免费矢量图标字体
- R-数据导入
- js 日期按年月日加减
- Servlet中的cookie和session
- POJ C++程序设计 编程题#1 编程作业—运算符重载
- windows主机无法访问服务器
- A simple way for hover pop bootstrap nav-menu
- WCF 下的windows服务的安装卸载
- preg_replace($pattern, $replacement, $content) 修饰符的奇葩作用
- PHPCMS V9{loop subcat(0,0,0,$siteid) $r}怎么解释?
- Android Drawable绘图学习笔记(转)
- WebService 调用三种方法
- 关于解决“No matching provisioning profiles found”问题-ios
- Hibernate 系列教程13-继承-鉴别器与内连接相结合
- 控制结构(5) 必经之地(using)
- 4.4管道和中间件介绍「深入浅出ASP.NET Core系列」
- [Swift]LeetCode654. 最大二叉树 | Maximum Binary Tree
- pytorch 参数初始化
- 深入学习使用ocr算法识别图片中文字的方法
- libctemplate——源码分析