可能重复:
是否可以扩展 Java 枚举?
我有一个小问题,我有一个具有一定数量值的枚举。此枚举用于系统的多个部分,在某些情况下需要包含更多值。
由于Java中不允许扩展枚举,我试图想出一些替代方案,到目前为止我的解决方案是创建一个接口,其中包含一个枚举,该枚举的值对系统的所有部分都是通用的,然后创建一个空类来实现这个界面。
所以enum A implements I
我可以使用A.COMMON_ENUM.ENUM_VALUE
enum B
现在我可以在系统的某个子部分创建一个新的,其中包含一个枚举ADDITIONAL_ENUM
并实现I
. 所以现在我可以使用这个:
B.COMMON_ENUM.ENUM_VALUE
或者
B.ADDITIONAL_ENUM.ADDED_ENUM_VALUE
这是一个丑陋的解决方案吗?- 我的意思是,它有效,但似乎是错误的......
- - - 更新: - - -
通用枚举位于系统的“核心”部分(可以有多个前端),并且每个前端的附加枚举各不相同。所以打个比方:假设一个 VEHICLE 枚举有 ENGINE、DOORS,然后在我的 CAR 前端我需要添加“轮子”,在我的 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
}
}