sando tipos de enumerações aninhadas em Ja
Tenho uma estrutura de dados em mente que envolve enumerações aninhadas, para que eu pudesse fazer algo como o seguinte:
Drink.COFFEE.getGroupName();
Drink.COFFEE.COLUMBIAN.getLabel();
E se houvesse declarações de método:
someMethod(Drink type)
someOtherMethod(DrinkTypeInterface type)
Então eu poderia dizer (apropriadamente):
someMethod(Drink.COFFEE)
someOtherMethod(Drink.COFFEE.COLUMBIAN)
Este foi o que eu vim com:
public enum Drink {
COFFEE("Coffee");
private String groupName;
private Drink(String groupName) {
this.groupName = groupName;
}
public enum Coffee implements DrinkTypeInterface {
COLUMBIAN("Columbian Blend"),
ETHIOPIAN("Ethiopian Blend");
private String label;
private Coffee(String label) {
this.label = label;
}
public String getLabel() {
return this.label;
}
}
String getGroupName() {
return this.groupName;
}
}
E a interface:
public interface DrinkTypeInterface {
public String getLabel();
}
Acho que estou apenas tentando entender qual é a melhor maneira de fazer esse tipo de coisa em Java, ou se preciso escrever um monte de instruções if para lidar com os Drink.values () individuais. Qualquer ajuda