Jak używać enum z hierarchią / zagnieżdżaniem w grupowaniu i podgrupie

Mam jedenenum „klasa” zwanaExample następująco:

enum Example {
//enums belonging to group A:
   enumA1,
   enumA2,
   enumA3,
//enums belonging to group B:
   enumB1,
   enumB2,
   enumB3,
//enums belonging to group C:
   enumC1,
   enumC2,
   enumC3;
}

To ważne dla mojego projektu, że wszystkie enumy, z którymi pracuję, należą doExample (ponieważ jest to argument w konstruktorze klasy).

Jak używaćenum hierarchia / zagnieżdżanie w celu osiągnięcia:

Metoda, która sprawdza, czyenum jest z grupy A, B lub C. Na przykład coś podobnegoExample.enumA1.isGroupBelonging(Group.A) lubisGroupBelonging(Example.enumA1,Group.A) byłaby publiczną metodą zwracającą wartość true.

Bądź w stanie zrobić to samo z podgrupami grupyA, B iC. Na przykład grupa A może mieć podgrupya, b ic. Chcę wtedy metody, która robi coś takiego jakExample.enumA1.isSubGroupBelonging(SubGroup.a) który jestpublic boolean.

Sposób na zrobienie tego wszystkiego bez konieczności opracowywaniaenum nazwa, która zatka mój kod. Na przykład miło byłoby po prostu odnieść się doExample.enumA1 w moich innych klasach bez potrzeby odwoływania się do niego za pomocą czegoś takiegoExample.enumA1(Group.A,SubGroup.a) lubExample.enumA1.Group.A.SubGroup.a

questionAnswers(3)

yourAnswerToTheQuestion