2016-03-04 66 views
5

我需要創建一個Java類,它可以接收多個枚舉值中的一個。例如:從多種類型中保存一個枚舉值

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

    private OneOfTheEnumsAboveMember enumMember; 
} 

由於枚舉不能被擴展,我怎樣才能定義一個必須是枚舉之一的成員?

+5

讓您的枚舉實現一個接口。 –

回答

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; 
}