Effective Java Item30 優先使用泛型方法
整理Effective Java書中Item 30: Favor generic methods心得筆記
主旨
本篇針對泛型方法的說明
範例
泛型方法重點在於安全性,下面透過union這個方法來說明在需要定義限制裡面的所有集合輸入及輸出參數必需相同型態。
原型方法是不被接受的寫法
泛型方法應該限制輸入及輸出參數必需相同型態
接續上面的說明帶出了Generic singleton factory泛型單例工廠模式,這裡點名了現有的Collections.reverseOrder()以及 Collections.emptySet()都是這模式。下面先用一個沒有使用泛型單例工廠的方式
為了這避免轉型,針對不同類型增加冗長對應程式碼
為了解決上述問題,這裡可以改成泛型單例工廠模式
來看看原始碼Collections.reverseOrder(),透過泛型單例工廠完美解決
小結
型別安全一直都是一大重點,而泛型方法需要更多實戰經驗才能更加熟悉,在要求輸入輸出型態確保不用轉型,使得程式更加清楚具有通用性以及安全性。
Read other posts