Verwendung von Enum mit der Gruppierung und Untergruppierung von Hierarchien / Verschachtelungen

Ich habe eineenum "Klasse" genanntExample wie folgt:

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;
}

Für mein Projekt ist es wichtig, dass alle Aufzählungen, mit denen ich arbeite, zusammengehörenExample (da dies ein Argument in einem Konstruktor einer Klasse ist).

Wie verwende ichenum Hierarchie / Verschachtelung, um Folgendes zu erreichen:

Eine Methode, die prüft, ob einenum gehört zur Gruppe A, B oder C. Zum Beispiel so etwas wieExample.enumA1.isGroupBelonging(Group.A) oderisGroupBelonging(Example.enumA1,Group.A) wäre eine öffentliche Methode, die true zurückgibt.

In der Lage sein, dasselbe mit Untergruppen von Gruppen zu tunA, B undC. Beispielsweise kann Gruppe A Untergruppen habena, b undc. Ich möchte dann eine Methode, die so etwas macht wieExample.enumA1.isSubGroupBelonging(SubGroup.a) die einpublic boolean.

Ein Weg, dies alles zu tun, ohne dass man sich etwas ausdenken mussenum Name, der meinen Code verstopft. Zum Beispiel wäre es schön, sich nur darauf beziehen zu könnenExample.enumA1 während meiner anderen Stunden, ohne dass ich mich mit so etwas darauf beziehen mussExample.enumA1(Group.A,SubGroup.a) oderExample.enumA1.Group.A.SubGroup.a

Antworten auf die Frage(3)

Ihre Antwort auf die Frage