Re: [問題] 關於 nested enum

看板java作者 (huge)時間18年前 (2008/03/06 17:10), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串3/4 (看更多)
抱歉,本篇文章回應 qrtt1 及 alien 板友的回答 ^^ 首先,在method傳遞的時候,確實無法將 BigType.MiddleType1.A 視為是一個 BigType 而是一個 MiddleType1 因此,在這個 abstract class 下,如果我有 MiddleType1 以及 MiddleType2 的 Enum class 那麼在method傳遞過程中,就只能依照所有的 Enum class 去進行 overload 例如 public void ProcessEnum(MiddleType1 mt1) public void ProcessEnum(MiddleType2 mt2) 而不能單純地使用 public void ProcessEnum(BigType bt) 去處理所有 BigType 這個 class 下的所有 Enum class <D>: : 然而要在method中傳遞這個 BigType.MiddleType1.A 的時候 : : 接收的method並不能將之視為一個BigType進行運作 : 你意思是你想把它視為 BigType 還是怎樣?.. 是的!!!! : : 而且 MiddleType1.A 與 MiddleType2.A 會是同一個值 : 這個不會是同一個吧. : BigType.MiddleType1 和 BigType.MiddleType2 是不同的 enum (class). : 兩者的 A 雖然名字一樣但不可能是同一個值. : 如果你說的是其 Ordinal value or string value, 這個 : 與 nested 與否就沒關係了 嗯,我表達的不完整,應該說這兩個值會有一樣的可能性 (ordinal value) : : 想請問板上朋友,要如何才能夠把 nested enum 當作一般的 enum 來操作呢 : 其實我看不太明白 XD : 不如你弄一個真正的例子說明你想做什麼吧 : 可是 Java enum 本身就不提供 inheritence (我看你的情況 : 像 enum inheritence). 既然人家已經明確不提供某種功能 : 你也凹不來, 不然就乾脆用 class 自己模擬enum 的使用吧 : (反正Java5 以前也是這樣弄) : alien 上面的例子可能不夠容易說明,舉個最近Java板流行的例子好了 小弟想用 nested enum 的原因如下 忍者 { public enum 火影村 { [DescriptionAttribute("奶奶")] 綱手, 自來也, 長舌頭, ..etc } public enum 風影村 { 我愛羅, 手鞠, ..etc } public enum 甲賀 { 甲賀弦之介 陽炎 ..etc } public enum 伊賀 { 朧 藥師寺_天膳 ..etc } } 所以,如果我想利用DescriptionAttribute取得某個忍者的中文說明 那麼,便得知道這個忍者是屬於火影村、風影村、甲賀、或是伊賀了 在處理上就麻煩許多 :( 不知道這樣的例子大家能不能接受 ^^" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.228.146.66

03/06 17:28, , 1F
沒有人因為收養了沒有血緣孩子, 就變成相同的祖先
03/06 17:28, 1F

03/06 17:30, , 2F
你需要的不是enum -_-;; enum不需要負擔這些
03/06 17:30, 2F
文章代碼(AID): #17pxK4cV (java)
文章代碼(AID): #17pxK4cV (java)