“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实例。
联系客服