版權(quán)聲明:本文為博主原創(chuàng)文章,基于學(xué)習(xí)目的非盈利可以轉(zhuǎn)載,表明出處即可。 https://blog.csdn.net/qq_37192800/article/details/82017526
findBugs工具警告的,一類不必要的裝箱轉(zhuǎn)換:“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的數(shù)值大小。調(diào)用靜態(tài)parseXXX方法更有效
例子: int projectNumber = Integer.valueOf(strNumber) 1 Integer.valueOf返回一個(gè)Integer,而不是一個(gè)int,但是projectNumber變量期望獲得一個(gè)int值。Findbugs警告你,你正在做一個(gè)“漫長(zhǎng)”的裝箱拆箱操作,涉及潛在地創(chuàng)建一個(gè)Integer實(shí)例,多余的對(duì)象,然后通過傳遞這個(gè)Integer對(duì)象再拆箱獲得值,例如: String => int => Integer => int
----------------
\ ---這是在Integer.valueOf中123 既然是想得到值,直接從String -> int 就好了。 String => int
--------------
\ --- Integer.parseInt
修改后的代碼:int projectNumber = Integer.parseInt(strNumber) 12345
解決的問題沒有必要進(jìn)行臨時(shí)Integer和潛在的內(nèi)存分配。 如果是Integer projectNumber = Integer.valueOf(strNumber) ,就沒有警告,因?yàn)檫@Integer對(duì)象正是你想傳遞給projectNumber實(shí)例。
|