ho una enum
'classe' chiamato Example
come segue:Come utilizzare enum con il raggruppamento e la gerarchia sottogruppi/nidificazione
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;
}
E 'importante per il mio progetto che tutte le enumerazioni con cui lavoro appartengono a Example
(dal momento che questo è un argomento in un costruttore di una classe).
Come faccio a utilizzare enum
gerarchia/nidificazione, al fine di conseguire i seguenti obiettivi:
Un metodo che verifica se un
enum
è di gruppo A, B o C. Ad esempio, qualcosa comeExample.enumA1.isGroupBelonging(Group.A)
oisGroupBelonging(Example.enumA1,Group.A)
sarebbe un metodo pubblico che restituisce vero.Essere in grado di fare la stessa cosa con i sottogruppi del gruppo
A
,B
eC
. Ad esempio, il gruppo A potrebbe avere sottogruppia
,b
ec
. Quindi voglio un metodo che faccia qualcosa comeExample.enumA1.isSubGroupBelonging(SubGroup.a)
che sia unpublic boolean
.Un modo per fare tutto questo senza la necessità di avere un nome elaborato
enum
che intasa il mio codice. Per esempio, sarebbe bello essere solo in grado di fare riferimento aExample.enumA1
durante i miei altre classi senza la necessità di fare riferimento ad esso utilizzando qualcosa di simileExample.enumA1(Group.A,SubGroup.a)
oExample.enumA1.Group.A.SubGroup.a
Ottima soluzione! Vorrei anche aggiungere il metodo 'getGroup()' per ottenere il gruppo corrente. – Shahar
Soluzione molto elegante :-) grazie! – Gilbou