java-比较两个整数“不必要的拆箱”警告
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-比较两个整数“不必要的拆箱”警告,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含944字,纯文字阅读大概需要2分钟。
内容图文
我尝试以另一种方式比较整数(对我而言,这很好):
public void compareMayNull(Integer a, Integer b) {
if ((a == null ? -1 : a.intValue()) == b.intValue())
System.out.println("true");
}
IntelliJ IDEA在a.intValue()和b.intValue()上警告我“不必要的拆箱”,并建议我简化代码:
public void compareMayNull(Integer a, Integer b) {
if ((a == null ? -1 : a) == b)
System.out.println("true");
}
但是我有点困惑,因为如果!= null会比较引用,这不是我所知的最佳实践.我应该使用什么代码?
解决方法:
因为您拥有一个为int类型的-1文字,所以在三元条件运算的评估中,a将被自动拆箱(当且仅当a == null为false时,否则该表达式不被评估)
一个== null? -1:
然后,由于此表达式的类型为int,因此b也会自动取消装箱.
因此,您可以编写if((a == null?-1:a)== b),这很安全,因为Java会自动将a和b拆箱.因此,通过调用intValue()进行的显式拆箱是多余的,并且IDE会警告您.为避免疑问,当表达式a == null被求值时,a不会自动取消装箱.
我个人认为这是Java最有害的部分之一.我会认真考虑以您最初拥有它的方式编写它,并告诉您的IDE吸收它.
内容总结
以上是互联网集市为您收集整理的java-比较两个整数“不必要的拆箱”警告全部内容,希望文章能够帮你解决java-比较两个整数“不必要的拆箱”警告所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。