我需要创建一个Java类,它可以从许多中接收单个枚举值。例如:
public class MyClass
{
public enum enumA {..}
public enum enumB {..}
public enum enumC {..}
public enum enumD {..}
private OneOfTheEnumsAboveMember enumMember;
}
由于枚举无法扩展,如何定义一个必须是其中一个枚举的成员?
答案 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;
}