Это:
Timerange longest = Timerange.longest(breaks);
if (longest.durationInHours() >= MIN_FREE_HOURS)
return true;
в порядке.
Но это:
if (Timerange.longest(breaks).durationInHours() >= MIN_FREE_HOURS)
return true;
дает:
java.lang.ClassCastException
Знаете ли вы почему ?!
Для простоты:
public static final <T extends Timerange> T longest(List<T> timeranges) {
return timeranges.get(0);
}
Перерывы:
List<Duty> breaks = week.substract(weekDuties);