2016-03-04 11 views
5

Potrzebuję utworzyć klasę Java, która może otrzymać jedną wartość wyliczenia spośród wielu. Na przykład:Zapisywanie pojedynczej wartości wyliczeniowej z wielu możliwych typów

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

    private OneOfTheEnumsAboveMember enumMember; 
} 

Ponieważ nie można rozszerzyć wyrażeń, jak zdefiniować jednego członka, który musi być jednym z wyliczeń?

+5

Dokonaj wyrażeń implementując interfejs. –

Odpowiedz

6

Nie można rozszerzyć wyliczeń, ale mogą one implementować interfejsy. Możesz mieć pusty interfejs znacznika (lub jeszcze lepiej - musi on zawierać metody, których faktycznie potrzebujesz) i sprawić, że typ Twojego członka:

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; 
} 
Powiązane problemy