Java中用equals替代==比较Integer对象,如何简化代码?
Integer对象比较:无需额外变量用equals替代==的方案
不用额外声明res1、res2这类中间变量,直接对a + b的结果装箱后调用equals方法即可,有两种简洁写法:
写法1:用Integer.valueOf手动装箱
return !Integer.valueOf(a + b).equals(c + d);
写法2:强制类型转换装箱
return !((Integer)(a + b)).equals(c + d);
原理说明
不管a、b、c、d是int基本类型还是Integer对象,a + b都会先自动拆箱为int类型完成计算,之后通过Integer.valueOf或强制转换把结果装箱为Integer对象,再调用equals方法和c + d(自动装箱后的Integer对象)做比较,彻底避开了用==比较Integer对象的坑。
内容的提问来源于stack exchange,提问作者KrishnaJK4567
相关产品推荐
相关产品推荐

