public enum TagEnum {
MALE,FEMALE,//GENDER
YOUNG,MIDDLE_AGED,OLD//AGE
}
Я хочу использовать TagEnum для описания Лица. MALE и FEMALE являются взаимоисключающими, также перечислены для возраста.Взаимное исключение Enum, управляемое EnumSet
Например, как только вы помещаете MALE в EnumSet, FEMALE не будет приниматься.
Есть ли такой EnumSet?
== Обновление ==
Обратите внимание, что оба пола и возраста используются для описания человека. Что происходит, если у меня есть более 5 измерений? Чтобы сделать 5 перечислений и 5 отдельных ссылок?
Поскольку мне нужен метод испытания, чтобы узнать, если кто-то владеет такое перечислением, это излишнее, чтобы сделать 5 перегруженные методы, как это:
boolean test(Age age);
boolean test(Gender gender);
boolean test(OtherDimension other);
//What a pity Enum can't be inherited
Есть ли способ сделать это проще? Благодаря!
Итак, все ли элементы этого перечисления эксклюзивные? Вы ищете «EnumSet», который не может содержать более одного элемента? –
Это называется «единственным экземпляром перечисления» :-) –
Есть ли у каждого 'TagEnum' один взаимоисключающий' TagEnum'? –