我有一個小問題,即我有一定數量值的枚舉。此枚舉用於系統的多個部分,並且在某些情況下需要包含更多的值。
由於在Java中不允許擴展枚舉我試圖想到一些替代方案,到目前爲止我的解決方案是創建一個接口,該接口包含一個枚舉,其中包含系統所有部分共有的值,然後創建一個空類來實現這個接口。
所以enum A implements I
這樣我就可以使用A.COMMON_ENUM.ENUM_VALUE
現在我可以創建包含一個枚舉ADDITIONAL_ENUM
系統的一些副部新enum B
和它實現I
。所以,現在我可以用這個:
B.COMMON_ENUM.ENUM_VALUE
或
B.ADDITIONAL_ENUM.ADDED_ENUM_VALUE
這是一個醜陋的解決方案? - 我的意思是,它的工作原理,但似乎只是錯 ...
----- UPDATE:-----
常見的枚舉是系統的「核心」部分(它可以有多個前端),並且每個前端的附加枚舉都不相同。所以要使用一個類比:可以說一個車輛枚舉有ENGINE,DOORS,然後在我的CAR前端,我需要添加「WHEELS」,並且在我的BOAT前端中我需要添加「PROPELLER」
代碼示例:
public interface EnumType { // I
public enum Core {
VALUE1,
VALUE2,
VALUE3
}
}
public enum CommonEnum implements EnumType { // A
}
public enum AdditionalEnumType implements EnumType { // B
public enum Additional {
VALUEX,
VALUEY
}
}
我不完全知道什麼是不同的部分是你的描述,你能告訴編譯樣本代碼([SSCCE(http://SSCCE.org)將是不錯)? –
您在枚舉中存儲的常量是什麼?他們以某種方式相關嗎? –
@DuncanJones:答案是*類似*,但問題是完全不同的(這個問題指出,不可能直接擴展enum)。 –