Я хочу вложить некоторые перечисления.Объект, который я представляю, - это 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;
Типы несовместимы.