我有一个涉及嵌套枚举的数据结构,以便我可以执行以下操作:
Drink.COFFEE.getGroupName();
Drink.COFFEE.COLUMBIAN.getLabel();
Run Code Online (Sandbox Code Playgroud)
如果有方法声明:
someMethod(Drink type)
someOtherMethod(DrinkTypeInterface type)
Run Code Online (Sandbox Code Playgroud)
然后我可以说(适当地):
someMethod(Drink.COFFEE)
someOtherMethod(Drink.COFFEE.COLUMBIAN)
Run Code Online (Sandbox Code Playgroud)
这就是我想出的:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
和界面:
public interface DrinkTypeInterface {
public String getLabel();
}
Run Code Online (Sandbox Code Playgroud)
我想我只想试着用Java来解决这种事情的最佳方法,或者如果我需要编写一堆if语句来处理各个Drink.values().有帮助吗?