Как использовать enum с группировкой и подгруппой иерархии / вложенности

у меня есть такойenum 'учебный класс' называетсяExample следующее:

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

Это'Это важно для моего проекта, все они, с которыми я работаю, принадлежатExample (так как это аргумент в конструкторе класса).

Как я используюenum иерархия / вложенность для достижения следующего:

Метод, который проверяет, является лиenum имеет группу A, B или C. Например, что-то вродеExample.enumA1.isGroupBelonging(Group.A) или жеisGroupBelonging(Example.enumA1,Group.A) будет публичный метод, который возвращает истину.

Быть в состоянии сделать то же самое с подгруппами группы,AB а такжеC, Например, группа А может иметь подгруппы,ab а такжеc, Затем я хочу метод, который делает что-то вродеExample.enumA1.isSubGroupBelonging(SubGroup.a) который являетсяpublic boolean

Способ сделать все это без необходимости тщательно продумыватьenum имя, которое забивает мой код. Например, было бы неплохо просто иметь возможность ссылаться наExample.enumA1 на протяжении других моих классов, не обращаясь к нему, используя что-то вродеExample.enumA1(Group.A,SubGroup.a) или жеExample.enumA1.Group.A.SubGroup.a

Ответы на вопрос(3)

Ваш ответ на вопрос