我想嵌套一些枚举.我所代表的对象是Flags,具有类型和值.有一些离散的类型,每种类型都有一组不同的可能值.
所以如果类型A可以具有值1,2或3,而类型B可以具有值4,5,6,我想要能够做如下事情:
Flag f = Flag.A.1;
f.getType() - returns "A"
f.getValue() - returns "1"
Flag f2 = Flag.A.4; -- Syntax error.
我正在疯狂地尝试在枚举中嵌套枚举 – 我正在尝试的可能性 – 我需要完整的枚举枚举,并用静态成员手工制作一个静态类吗?
我迄今所做的最大努力是:
public class Flag {
enum A extends Flag {
ONE("ONE"),TWO("TWO"),THREE("THREE");
private A(String value) {
Flag.type = "A";
Flag.value = value;
}
}
private static String type;
private static String value;
}
但如果我这样做:
Flag f = Flag.A.ONE;
类型不兼容.