Я получаю ClassCastException в своем коде. Первоначально цель заключалась в том, чтобы преобразовать Set to List, поскольку метод refreshDetailVOTable получит только Set. Возможно, проблема заключалась в преобразовании Set to List. refreshDetailVOTable может принять неправильный список, поэтому я получаю ClassCastException.Исключение произошло во время диспетчеризации событий: java.lang.ClassCastException в среде JRE 1.4
По результатам расследования выяснилось, что:
Я использую все типы сырья. Вместо этого я должен использовать дженерики. Они помогут найти такую ошибку во время компиляции.
Метод принимает параметр Список detailIRsToDelete, от которого я получил итератора и итерацию по элементам, как так:
for (Iterator iDetails = detailIRsToDelete.iterator(); iDetails.hasNext();) {
IdentifiableReference detailIR = (IdentifiableReference) iDetails.next();
Я мог бы случайно поставить что-то другое, чем IdentifiableReference в detailIRsToDelete, таким образом, получая ClassCastException в инструкции присваивания в цикле.
Параметр списка должен затем быть объявлен как:
List <IdentifiableReference> detailIRsToDelete
Акт сдачи вещей в этот список будет проверен компилятором, и произойдет ошибка в точке, где ошибочный объект был добавлено во время компиляции, а не позже во время выполнения, как это было возможно.
Вопрос: Тогда это должно решить Cast исключения класса, однако, это не может быть применен к текущей JRE, который составляет 1,4
У нас есть какой-либо обходной путь для JRE 1.4 в стороне от модернизации?
Если этот список используется в достаточно небольшом количестве мест, может быть, стоит поставить на дженерики в временно в любом случае. Это, по крайней мере, покажет вам, где ошибка. Однако вы, безусловно, должны обновиться с 1.4. Вам нужно будет сделать это некоторое время, и здесь, по крайней мере, это правдоподобная мотивация. – EJP