Как привести объект к списку, используя метод фасада

Я пытаюсь добавить и удалить объект из этого списка, используя метод «listarEntregaKitRegistro», но .xhtml, который должен отображать список, ничего не отображает на экране.

Kit — это класс сущностей из моей базы данных, kitFacade — это метод, который позволяет вам получить список о какой-либо сущности в этом случае kit, kitFacade также генерируется netbeans как сессионный компонент из классов сущностей, на самом деле 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)

Пожалуйста, отредактируйте свой вопрос, указав минимальный воспроизводимый пример. По крайней мере, включите исходный код com.controller.KitController.paraEntregar(), где вы делаете неправильное приведение.

Selaron 28.03.2019 08:02
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
126
1

Ответы 1

Я не знал, где вы кастуете 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;
}

Другие вопросы по теме