2016-03-04 3 views
5

多くのものの中から単一の列挙値を受け取ることができるJavaクラスを作る必要があります。たとえば:列挙型を拡張することができませんので可能な多くのタイプから単一の列挙型値を保存する

public class MyClass 
{ 
    public enum enumA {..} 
    public enum enumB {..} 
    public enum enumC {..} 
    public enum enumD {..} 

    private OneOfTheEnumsAboveMember enumMember; 
} 

、どのように私は、列挙型のいずれかでなければなりません単一のメンバーを定義することができますか?

+5

enumがインターフェイスを実装するようにします。 –

答えて

6

列挙型は拡張できませんが、インタフェースを実装できます。あなたは空のマーカーインターフェイスを持つことができます(または、実際に必要なメソッドを含むことができます)。メンバーのタイプを指定します。

public class MyClass { 
    public static interface EnumInterface {} 
    public enum enumA implements EnumInterface {..} 
    public enum enumB implements EnumInterface {..} 
    public enum enumC implements EnumInterface {..} 
    public enum enumD implements EnumInterface {..} 

    private EnumInterface enumMember; 
} 
関連する問題