Effective Java Item 51:設計方法簽名要謹慎

整理 Effective Java 書中 Item 51: Design method signatures 心得筆記

主旨

方法簽名(method signature)是一個方法能否「好用」的第一印象。這篇文章彙整幾個 API 設計小技巧,讓你的方法名稱與參數設計更加清晰、簡潔、可維護,避免常見的地雷與誤用風險。

Read more

Effective Java Item 47:回傳元素序列時優先使用 Collection 而非 Stream

整理 Effective Java 書中 Item 47: Prefer Collection to Stream 心得筆記

主旨:回傳元素序列時,應優先使用 Collection

Java 8 推出 streams 之後,我們在設計方法時有了新的回傳型別選擇。不過,若你要回傳一串元素,Collection 或其子型別通常仍是最合適的選擇,因為這樣使用者不論是想用 for-each 迴圈還是用 stream pipeline,都能方便操作。除非真的有特殊理由,否則不要只回傳 Stream。

Read more

Effective Java Item 44:用標準函式介面

整理 Effective Java 書中 Item 44: Use standard functional interfaces 心得筆記

主旨:學會選擇正確的標準函式介面

從 Java 8 開始,因為 lambda 的加入,我們寫 API 的思維也隨之改變。如果你需要傳入一段行為(function object),不再需要額外建立匿名類別,而是可以用 lambda 寫得更簡潔。但要寫出真正好用的 API,選對函式介面更是關鍵,盡可能用 Java 內建的標準函式介面,能讓程式碼更直觀、可讀性更高,也方便 IDE 自動補全與檢查。

點出問題:不該每次都自創介面

假設你想要建立一個可限制最大筆數的快取,會用 LinkedHashMap 來實作,並覆寫 removeEldestEntry()

Read more