从许多类型中保存单个枚举值

Yon*_*Nir 5 java enums

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

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

    private OneOfTheEnumsAboveMember enumMember;
}
Run Code Online (Sandbox Code Playgroud)

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

Mur*_*nik 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;
}
Run Code Online (Sandbox Code Playgroud)