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