Cómo usar enumeración con agrupación y subgrupos jerarquía / anidamiento
tengo unoenum
'clase' llamadaExample
como sigue:
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;
}
Es importante para mi proyecto, todos los enumerados con los que trabajo pertenecen.Example
(ya que este es un argumento en un constructor de una clase).
Como usoenum
jerarquía / anidamiento para lograr lo siguiente:
Un método que prueba si unenum
Es del grupo A, B o C. Por ejemplo, algo comoExample.enumA1.isGroupBelonging(Group.A)
oisGroupBelonging(Example.enumA1,Group.A)
Sería un método público que devuelve verdadero.
Ser capaz de hacer lo mismo con subgrupos de grupo.A
, B
yC
. Por ejemplo, el grupo A podría tener subgruposa
, b
yc
. Entonces quiero un método que haga algo comoExample.enumA1.isSubGroupBelonging(SubGroup.a)
el cual es unpublic boolean
.
Una forma de hacer todo esto sin necesidad de tener algunos elaborados.enum
Nombre que obstruye mi código. Por ejemplo, sería bueno poder referirse aExample.enumA1
a lo largo de mis otras clases sin necesidad de referirme a él usando algo comoExample.enumA1(Group.A,SubGroup.a)
oExample.enumA1.Group.A.SubGroup.a