Java 比较日历和#x27;s DAY_OF_WEEK常量和周天数枚举

Java 比较日历和#x27;s DAY_OF_WEEK常量和周天数枚举,java,enums,calendar,Java,Enums,Calendar,我有一个EnumSet,其中Days是一周中所有天数的Enum,从第0个星期日开始。我从someCalendar.get(Calendar.DAY\u OF_WEEK)收到一个整数,它是一个常量,表示一周中的一天,从星期日1开始,一直到星期六7。我需要知道由该整数表示的一周中的哪一天是否在我的EnumSet中。可以合理地说: private EnumSet<Days> selectedDays; private final Days[] allDays = Days.values()

我有一个
EnumSet
,其中
Days
是一周中所有天数的
Enum
,从第0个星期日开始。我从
someCalendar.get(Calendar.DAY\u OF_WEEK)
收到一个整数,它是一个常量,表示一周中的一天,从星期日1开始,一直到星期六7。我需要知道由该整数表示的一周中的哪一天是否在我的
EnumSet
中。可以合理地说:

private EnumSet<Days> selectedDays;
private final Days[] allDays = Days.values();

private boolean checkDayOfWeek(int day){
    return (selectedDays.contains(allDays[day - 1]));
}
private EnumSet selectedDays;
私人最终天数[]allDays=Days.values();
私有布尔checkDayOfWeek(整数天){
返回(selectedDays.contains(allDays[day-1]));
}

Calendar
中的常量在API中发布,因此假设它们不会更改是否合理?有没有一个更优雅的解决方案,我没有看到?不管在哪里,它们都是一样的吗?我唯一的另一个想法是一系列丑陋的if语句。

日历中的常量肯定不会改变。如果他们做了,你的单元测试就会失败。你有单元测试对吗:)我有:)。但我真的不想永远使用这个应用程序。总有一天我会停止定期运行单元测试。