numerando enumerações em Ja
Quero aninhar algumas enumerações. O objeto que estou representando são Flags, com um tipo e um valor. Há um número discreto de tipos e cada tipo tem um conjunto distinto de valores possívei
Então, se o Tipo A pode ter valores 1, 2 ou 3 e o Tipo B pode ter valores 4,5,6, eu gostaria de poder fazer coisas como:
Flag f = Flag.A.1;
f.getType() - returns "A"
f.getValue() - returns "1"
Flag f2 = Flag.A.4; -- Syntax error.
Estou enlouquecendo tentando aninhar enumerações dentro de enumerações - é o que estou tentando possível - preciso abandonar enumerações completamente e criar uma classe estática com membros estático
Meu melhor esforço até agora é:
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;
}
Mas se eu fizer:
Flag f = Flag.A.ONE;
Os tipos são incompatíveis.