我的問題與此處發佈的問題幾乎完全相同:Abstract class with final uninitialized field我喜歡解決方案。然而,我的問題有點複雜,因爲抽象類有多個不同類型的最終字段。例如,我有四個int
,兩個int[]
和兩個double
。什麼是強制子類初始化這些變量的最好方法?在子類中初始化變化類型的'最終'字段
選項,我認爲:
- 轉換爲字符串的所有領域,並用
Map
- 傳遞有一個很長的父類的構造
- 創建的helper類將作爲一個包裝和封裝所有的值,然後將這個類的一個實例傳遞給基類
第一個選項不是很優雅,而且看起來有點複雜,esp特別是與數組。第二種選擇非常單調乏味,第三種選擇看起來像是我過度了。
有沒有一個「正確」的方式來做到這一點?或者,如果不是,三種選擇中哪一種最優雅?
這很有道理。這使得控制子類中的值非常容易,並且繼續構建子類很簡單。謝謝! – williamg 2012-02-26 02:04:10
很高興提供幫助。總的來說,我的建議是:爲公衆保持高標準(優雅,模式等),並且不要害怕在私人/受保護的領域削減幾個角落。 – 2012-02-26 03:25:51