Странное ClassCastException - PullRequest
       7

Странное ClassCastException

1 голос
/ 15 марта 2009

Это:

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

Ответы [ 2 ]

1 голос
/ 15 марта 2009

Что произойдет, если вы попытаетесь:

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

например, разыграть?

0 голосов
/ 16 марта 2009

Предположительно где-то в вашем коде вы получаете предупреждение. Слушай свой компилятор.

Чтобы получить подробности, добавьте -Xlint (в частности, -Xlint:unchecked) в командную строку javac (или аналогичную среду разработки).

...