У меня есть один 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)
будет публичным методом, который возвращает true. -
Уметь делать то же самое с подгруппами группы
A
,B
иC
. Например, группа А может иметь подгруппыA
,B
иC
. Затем мне нужен метод, который делает что-то вродеExample.enumA1.isSubGroupBelonging(SubGroup.a)
, который являетсяpublic boolean
. -
Способ сделать все это без необходимости иметь сложное имя
enum
, которое забивает мой код. Например, было бы неплохо просто иметь возможность ссылаться наExample.enumA1
на всех моих других классах, не обращаясь к нему, используя что-то вродеExample.enumA1(Group.A,SubGroup.a)
илиExample.enumA1.Group.A.SubGroup.a