小编Chr*_*ris的帖子

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

我有一个涉及嵌套枚举的数据结构,以便我可以执行以下操作:

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().有帮助吗?

java enums nested-class

30
推荐指数
2
解决办法
6万
查看次数

标签 统计

enums ×1

java ×1

nested-class ×1