从可能的多种类型中保存单个枚举值

时间:2016-03-04 09:29:49

标签: java enums

我需要创建一个Java类,它可以从许多中接收单个枚举值。例如:

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

    private OneOfTheEnumsAboveMember enumMember;
}

由于枚举无法扩展,如何定义一个必须是其中一个枚举的成员?

1 个答案:

答案 0 :(得分: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;
}