Effective Java Item38:用介面模擬可擴展的 enum

整理Effective Java書中Item 38: Emulate extensible enums with interfaces心得筆記

主旨

Java 的 enum 雖然功能強大,但有一個主要限制:enum 是封閉的類型,不能被擴展。這意味著一旦定義了 enum,就無法在不修改原始程式碼的情況下添加新的值。這篇文章介紹如何使用介面來解決這個問題。

Read more

Effective Java Item37:用 EnumMap 取代 int 索引的陣列

整理Effective Java書中Item 37: Use EnumMap instead of ordinal indexing心得筆記

主旨

在 Java 中,我們有時會用 int 索引的陣列來儲存與 enum 相關的資料,但這種做法容易造成型別不安全和可讀性問題。Java 提供了 EnumMap 類別,專門用來處理 enum 類型的映射關係,提供更安全、更清楚的解決方案。

問題:int 索引陣列的缺點

假設我們要儲存每個星期幾的開門時間,傳統作法可能會這樣寫:

Read more

Effective Java Item34:用 enum 取代 int 常數

整理Effective Java書中Item 34: Use enum instead of int constant心得筆記

主旨

很多 Java 初學者一開始會用 int 常數(例如 1=小、2=中、3=大)來表示一組固定的狀態。但這種做法其實會讓程式容易出錯、不易維護,也看不出意思。Java 後來加入了 enum(列舉型別),提供更安全、清楚、有彈性的方式來處理這類需求。這篇文章會說明為什麼你應該用 enum 取代 int 常數。

Read more