重複の可能性:
Java Enums を拡張することは可能ですか?
特定の数の値を持つ列挙型があるという小さな問題があります。この列挙型はシステムの複数の部分で使用され、場合によってはさらに値を含める必要があります。
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 enum に 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
}
}