J'ai fait un similar question il y a quelques jours, mais maintenant j'ai de nouvelles exigences, et de nouveaux défis =). Comme d'habitude, j'utilise les énumérations d'animaux à des fins didactiques, une fois que je ne veux pas expliquer les choses spécifiques au domaineJava enums: Collecte d'informations à partir d'un autre enums
J'ai une base d'animaux, qui est utilisée par le zoo entier (je peux ajouter des choses à, mais doit garder la compatibilité):
public enum Animal {
DOG,
ELEPHANT,
WHALE,
SHRIMP,
BIRD,
GIRAFFE;
}
J'ai besoin de les classer dans quelques, catégories non liées, comme des animaux gris (baleine (ma baleine est gris) et l'éléphant), les petits animaux (oiseaux, crevette et chien), les animaux marins (baleine et crevette). Je pourrais, comme suggéré dans mes questions précédentes, ajouter beaucoup de booléens, comme isGray, isSmall et isFromSea, mais je voudrais une approche où je pourrais garder ceci ailleurs (ainsi mon énumération n'a pas besoin de savoir beaucoup). Quelque chose comme:
public enum Animal {
DOG,
ELEPHANT,
WHALE,
SHRIMP,
BIRD,
GIRAFFE;
public boolean isGray() {
// What comes here?
}
}
Ailleurs
public enum GrayAnimal {
WHALE,
ELEPHANT;
}
Comment est-ce possible? Est-ce que je demande trop de Java?
+1 ne savait pas à propos d'EnumSet. truc cool! – sfussenegger
Étais sur le point de poster une réponse similaire .. Je trouve qu'il est plus propre d'avoir des ensembles au lieu de retourner les booléens. C'est aussi beaucoup plus facile à étendre. +1 –
Cela semble être un bon. Je vais l'essayer (et l'accepter au cas où cela me ferait plaisir = P) –