代碼完成測試後提交正式環境,隱藏錯誤在運行時才被發現,修復成本極高。FindBugs (開源靜態分析工具) 可掃描「Bug Patterns」——極可能為錯誤的代碼模式,助你提早發現問題,提升代碼健壯度與系統可靠性。
https://findbugs.sourceforge.net/)https://findbugs.sourceforge.net/downloads.html)%ECLIPSE_HOME% (如 E:\OpenSource\Eclipse\)。%ECLIPSE_HOME% 下建立 PlugInsNew\ 目錄。PlugInsNew\XYZ\eclipse\features、plugins)。%ECLIPSE_HOME%\links\ 建立 XYZ.link,內容:path=../PlugInsNew/XYZ (相對路徑利於團隊共享與整體遷移)。
重啟 Eclipse → Help → About Eclipse SDK → Plug-in Details,可見 FindBugs Plug-in 0.0.17 (Provider: FindBugs Project)。
Window → Show View → Other... → FindBugs → BugDetails
Package Explorer 或 Navigator 中右鍵專案 → Find Bugs → Find Bugs。進度對話框顯示掃描狀態。
原代碼直接回傳內部陣列引用:
public class Test {
private String[] name;
public String[] getName() { return name; }
public void setName(String[] name) { this.name = name; }
}
FindBugs 警告:EI_EXPOSE_REP (暴露內部可變狀態)。修正為回傳防禦性副本:
public String[] getName() { String[] temp = name; return temp; }
public void setName(String[] name) { String[] temp = name; this.name = temp; }
重新掃描,警告消失。
專案右鍵 → Properties → FindBugs: