Your enum is of individual days of the week - a variable of type DayOfWeek
should only be expected to refer to a single day. If you're trying to store multiple values, you should look at an EnumSet
:
EnumSet<DayOfWeek> days = EnumSet.of(DayOfWeek.Monday, DayOfWeek.Wednesday);
int valueToStore = setToValue(days);
Later:
int valueRetrieved = ...;
EnumSet<DayOfWeek> days = valueToSet(days);
where those methods are declared as:
static int setToValue(EnumSet<DayOfWeek> days) {
int value = 0;
for (DayOfWeek day : days) {
value |= day.value();
}
return value;
}
static EnumSet<DayOfWeek> valueToSet(int value) {
EnumSet<DayOfWeek> days = EnumSet.noneOf(DayOfWeek.class);
for (DayOfWeek day : EnumSet.allOf(DayOfWeek.class)) {
if ((value & day.value()) != 0) {
days.add(day);
}
}
return days;
}