1

这个:

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);
4

2 回答 2

1

如果您尝试:

if (((Timerange) Timerange.longest(breaks)).durationInHours() >= MIN_FREE_HOURS)
    return true;

例如,投吗?

于 2009-03-14T23:10:28.547 回答
0

大概在您的代码中的某个地方,您会收到警告。听听你的编译器。

要获取详细信息,请将-Xlint(特别是-Xlint:unchecked)添加到您的 javac 命令行(或执行您的开发环境的等效项)。

于 2009-03-16T12:39:35.910 回答