打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【findBugs】findBugs对Integer.valueOf()的报错一类不必要的装箱转换
      版权声明:本文为博主原创文章,基于学习目的非盈利可以转载,表明出处即可。 https://blog.csdn.net/qq_37192800/article/details/82017526

findBugs工具警告的,一类不必要的装箱转换:

“Boxing/unboxing to parse a primitive”, A boxed primitive is created from a String, just to extract the unboxed primitive value. It is more efficient to just call the static parseXXX method

“用于基本类型的装箱/拆箱”,把String解析成基本类型的包装类,如果只是为了获得String的数值大小。调用静态parseXXX方法更有效


例子:

int projectNumber = Integer.valueOf(strNumber) 1

Integer.valueOf返回一个Integer,而不是一个int,但是projectNumber变量期望获得一个int值。Findbugs警告你,你正在做一个“漫长”的装箱拆箱操作,涉及潜在地创建一个Integer实例,多余的对象,然后通过传递这个Integer对象再拆箱获得值,例如:

String => int => Integer => int
         ----------------
                \ ---这是在Integer.valueOf中123

既然是想得到值,直接从String -> int就好了。

String => int
--------------
      \ --- Integer.parseInt

修改后的代码:int projectNumber = Integer.parseInt(strNumber) 12345

解决的问题

没有必要进行临时Integer和潜在的内存分配。
如果是Integer projectNumber = Integer.valueOf(strNumber),就没有警告,因为这Integer对象正是你想传递给projectNumber实例。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
java将int类型的变量转化成String类型的
findBug 错误修改指南
findBugs的一些功能说明
ABAP,Java和JavaScript的整型数据类型比较
JAVA string int Integer间的转换以及日期问题
Integer.parseInt用法integer.valueof的区别补充
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服