此:
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);
答案 0 :(得分:1)
如果你尝试会发生什么:
if (((Timerange) Timerange.longest(breaks)).durationInHours() >= MIN_FREE_HOURS)
return true;
例如,施展它?
答案 1 :(得分:0)
据推测,您的代码中某处会收到警告。听取你的编译器。
要获取详细信息,请将-Xlint
(特别是-Xlint:unchecked
)添加到您的javac命令行中(或者使用您的开发环境)。