整理Effective Java書中Item 27: Eliminate unchecked warnings心得筆記

主旨

盡可能的改正消除提示的unchecked警告以提升程式碼品質。

點出問題

很多人會慣性忽略提示的黃色警告訊息(包括我自己),早期當你在使用泛型時候可能會這樣使用。

List<String> members = new ArrayList();

這時候你就會得到一個警告 type safety the expression of type arraylist needs unchecked conversion to conform to list string 提醒你這裡可能在執行中會有ClassCastException,這時候你有兩個做法。

// 1.加上註解告訴其他開發人員可以忽略的理由
@SuppressWarnings("unchecked")
List<String> members = new ArrayList();

// 2.1 修正它
List<String> members = new ArrayList<String>();

// 2.2 修正它 Java7
List<String> members = new ArrayList<>();

當然最好還是使用Java7引入的<>簡寫,可以確保你的程式碼是安全的,增加品質穩定度,而Sonar也有點出該問題RSPEC-2293,有興趣可以看看。

小結

總之,很多時候BUG都是出在很小的細節上,unchecked警告也是很重要的不要忽略它,建議多使用靜態分析工具幫助自己提高程式品質。