Я пытаюсь добавить и удалить объект из этого списка, используя метод "listarEntregaKitRegistro", но .xhtml, который подходит для отображения списка, не будет отображать что-либо на экране.
Kit - это класс сущностей из моей базы данных, kitFacade - это метод, который позволяет вам получить список некоторых сущностей в этом случае. KitFacade также генерируется сетевыми компонентами как сессионный компонент из классов сущностей, на самом деле kitFacade.findAll() работает хорошо и получить все элементы из этого списка, но мне нужно получить их с некоторыми исключениями.
public List<Kit> listarEntregaKitRegistro(){
for (int i=0; i<=kitFacade.findAll().size(); i=i+1){
if (kit.getEstadoKit()=="Activo"){
kitFacade.findAll().add(i, kit);
}
else {
kitFacade.findAll().remove(i);
}
}
return kitFacade.findAll();
}
Исключение, выброшенное сервером Glassfish 4.1.1:
Caused by: java.lang.ClassCastException: com.entity.Kit cannot be cast to
java.util.List
at com.controller.KitController.paraEntregar(KitController.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at javax.el.ELUtil.invokeMethod(ELUtil.java:332)
Я не знал, где ты ведешь Kit
в List
. но вы делаете неправильное сравнение строк. Может быть, в какой-то другой функции вы приводите свой объект в список. Вот код с некоторыми изменениями.
public List<Kit> listarEntregaKitRegistro(){
List<Kit> list = kitFacade.findAll();
for (int i=0; i<=list.size(); i++){
if (kit.getEstadoKit().equals("Activo")){ // compare String by Equals method
list.add(i, kit);
}else{
list.remove(i);
}
}
return list;
}
com.controller.KitController.paraEntregar()
исходный кодcom.controller.KitController.paraEntregar()
где вы делаете неправильное приведение.