在Java中使用嵌套的枚举类型

16 浏览
0 Comments

在Java中使用嵌套的枚举类型

我有一个数据结构的想法,它涉及嵌套的枚举,这样我就可以做以下操作:

Drink.COFFEE.getGroupName();
Drink.COFFEE.COLUMBIAN.getLabel();

如果有方法声明的话:

someMethod(Drink type)
someOtherMethod(DrinkTypeInterface type)

然后我可以这样说(适当地):

someMethod(Drink.COFFEE)
someOtherMethod(Drink.COFFEE.COLUMBIAN)

这是我想到的解决方案:

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;
    }
}

还有接口:

public interface DrinkTypeInterface {
    public String getLabel();
}

我想我只是试图弄清楚在Java中处理这种情况的最佳方法,或者是否需要编写一堆if语句来处理各个Drink.values()。有什么帮助吗?

0