添加枚举值?

ral*_*ugm 2 java enums switch-statement


我可以从两个枚举中创建一个枚举(在switch语句中使用的常量)吗?
就像是...

public class Test{

    public enum WorkDay {Monday, Tuesday, Wednesday, Thursday,Friday};
    public enum WeekEndDay {Sunday, Saturday};

    // it doesn't work ):
    public enum Day{WorkDay.values(),WeekEndDay.values()}; 

    public static void Action(Day d) {

        switch(d){
            case Monday:
                ...;
                break;
            case Tuesday:
                ...;
                break;
            case ...:
                ...;
                break;
            case Saturday:
                ...;
                break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

任何的想法???我真的想用开关和分离的枚举谢谢!!!

Jon*_*eet 10

不.你可以创建一个Day枚举并明确列出每个值,为每种类型提供一个构造函数......但我个人会使用:

public enum Day {
    MONDAY(true),
    TUESDAY(true),
    WEDNESDAY(true),
    THURSDAY(true),
    FRIDAY(true),
    SATURDAY(false),
    SUNDAY(false);

    private final boolean workDay;

    private Day(boolean workDay) {
        this.workDay = workDay;
    }

    public boolean isWorkDay() {
        return workDay;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以EnumSet<Day>在非工作日发布工作日和另一个工作日.