Effective Java Item 53:謹慎使用 varargs

整理 Effective Java 書中 Item 53: Use varargs judiciously 心得筆記

主旨

Java 中的 varargs(variable arity arguments,可變參數)允許在方法中接受 不定數量的參數。這在設計彈性 API、像是 printf() 或是工具類別時非常好用。但 varargs 是把雙面刃,用錯了可能導致 執行時錯誤隱性效能問題。這篇將帶你學會:什麼時候該用 varargs,什麼時候該避免,怎麼用才安全又優雅。

Read more

Effective Java Item 52:謹慎使用 overloading

整理 Effective Java 書中 Item 52: Use overloading judiciously 心得筆記

主旨

在 Java 中,方法的 overloading(多載) 是一種常見語法糖,但如果使用不當,容易導致令人困惑的行為與難以追蹤的錯誤。尤其當泛型、自動裝箱(autoboxing)、lambda 及 method reference 進入語言後,混淆性更高。本條目要提醒我們:能用不代表該用,overloading 要非常小心設計。

Read more

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

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

主旨

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

Read more

Effective Java Item 50:需要時進行防禦性複製

整理 Effective Java 書中 Item 50: Make defensice copies心得筆記

主旨

就算 Java 是種安全語言,也不能完全保證類別的內部狀態不被外部破壞。尤其是當類別使用到可變的物件作為參數或欄位時,必須小心:若沒有做 defensive copy(防守性複製),有心人或粗心人都可能破壞你的類別不變條件(invariant)。這篇就是要提醒你:該防守時就防守。

Read more

Effective Java Item 49:記得檢查參數是否合法

整理 Effective Java 書中 Item 49: Check parameters for validity心得筆記

主旨

幾乎所有方法和建構子都會對輸入參數有一定的限制,例如 index 不可為負數、物件參照不可為 null 等。如果這些條件沒被滿足,我們應該要在一開始就檢查並丟出明確的例外,否則後果可能是錯誤難以追蹤,甚至導致物件狀態錯亂。

Read more