FindBugs是一款靜態(tài)分析eclipse插件工具,F(xiàn)indBugs可以幫助用戶查找Java軟件中可能出現(xiàn)的bug。直接查找可能存在的空的引用、多余的變量等錯誤。
1 、找出hash equals不匹配
找與equals()和hashCode()的實現(xiàn)相關的幾個問題。這兩個方法非常重要,因為幾乎所有基于集合的類---List、Map、Set等都調用它們。
2、檢測:忽略方法返回值
這個檢測器查找代碼中忽略了不應該忽略的方法返回值的地方。這種情況的一個常見例子是在調用String方法時。
這個錯誤很常見。在第2行,程序員認為他已經用p替換了字符串中的所有b。確實是這樣,但是他忘記了字符串是不可變的。所有這類方法都返回一個新字符串,而從來不會改變消息的接收者。
3、檢測:Null指針對null的解引用(dereference)和冗余比較
這個檢測器查找兩類問題。它查找代碼路徑將會或者可能造成null指針異常的情況,它還查找對null的冗余比較的情況。例如,如果兩個比較值都為null,那么它們就是冗余的并可能表明代碼錯誤。FindBugs在可以確定一個值為null而另一個值不為null時,檢測類似的錯誤。
4、檢測:初始化之前讀取字段
這個檢測器尋找在構造函數(shù)中初始化之前被讀取的字段。這個錯誤通常是由使用字段名而不是構造函數(shù)參數(shù)引起的,例如在構造函數(shù)中讀取未初始化的字段。
5、命名檢查
對標準Java命令規(guī)范的測試:變量名稱不應太短;方法名稱不應過長;類名稱應當以小寫字母開頭;方法和字段名應當以小寫字母開頭,等等。
6、未使用的代碼檢查
查找從未使用的私有字段和本地變量、執(zhí)行不到的語句、從未調用的私有方法,等等。
7、嵌套檢查
例如:switch語句應當有default塊,應當避免深度嵌套的if塊,不應當給參數(shù)重新賦值,不應該對double值進行相等比較。
8、導入語句檢查
檢查import語句的問題,比如同一個類被導入兩次或者被導入java.lang的類中。
9、JUnit測試檢查
查找測試用例和測試方法的特定問題,例如方法名稱的正確拼寫,以及suite()方法是不是static和public。
10、字符串檢查
找出處理字符串時遇到的常見問題,例如重復的字符串標量,調用String構造函數(shù),對String變量調用toString()方法。
11、括號檢查
檢查for、if、while和else語句是否使用了括號。
12、代碼尺寸檢查
測試過長的方法、有太多方法的類以及重構方面的類似問題。
13、終結函數(shù)檢查
因為在Java語言中,finalize()方法不是那么普遍,它們的使用規(guī)則雖然很詳細,但是人們對它們相對不是很熟悉。這類檢查查找finalize()方法的各種問題,例如空的終結函數(shù),調用其他方法的finalize()方法,對finalize()的顯式調用,等等。
14、克隆檢查
用于clone()方法的新規(guī)則。凡是重寫clone()方法的類都必須實現(xiàn)Cloneable,clone()方法應該調用super.clone(),而clone()方法應該聲明拋出CloneNotSupportedException異常,即使實際上沒有拋出異常,也要如此。
15、耦合檢查
查找類之間過度耦合的跡象,比如導入內容太多;在超類型或接口就已經夠用的時候使用子類的類型;類中的字段、變量和返回類型過多等。
16、異常檢查
針對異常的檢查:不應該聲明該方法而拋出java.lang.Exception異常,不應當將異常用于流控制,不應該捕獲Throwable,等等。
17、日志檢查
查找java.util.logging.Logger的不當使用,包括非終狀態(tài)(nonfinal)、非靜態(tài)的記錄器,以及在一個類中有多個記錄器。
18、Open—Close檢查
檢查文件或通訊方面,是否忘記Close的情況。
19、其它檢查
其它缺陷清單可參見:缺陷清單。
20、構建自己的規(guī)則集
可以構建自己的規(guī)則集。
下載之后,把解壓后的文件拷貝到 $ECLIPSE_HOME/plugins/目錄下,重新啟動eclipse即完成安裝。
1、插件的設置:
安裝好之后,可以通過 Projects > Property > FindBugs標簽對其進行設置。設置方法可以根據自己的需要進行調整。
另外在 問題(Proplems)列表窗口(Windows > 視圖 > 問題)的Filter設置里,把FindBugs的有關選項都check上。
2、插件的執(zhí)行:
選中 所在項目,鼠標右鍵 > Find Bugs > Find Bugs執(zhí)行
騰訊視頻官方版 | 45.34MB
愛奇藝視頻官方正式版 | 35.10MB
暴風影音最新版下載 | 50.3MB
QQ音樂官方正式版 | 24.2MB
酷狗音樂2022下載 | 37MB