получаю java.lang.Исключение ClassCastException

#java

Вопрос:

Я создаю удаленный api с помощью api spring tool suite, и при запуске моего кода я продолжаю получать ошибку. Я уже несколько часов пытаюсь разобраться в проблеме, но, похоже, не могу ее решить.

сообщение об ошибке:

 Caused by: java.lang.ClassCastException: class org.springframework.http.HttpHeaders cannot be cast to class lombok.var (org.springframework.http.HttpHeaders and lombok.var are in unnamed module of loader 'app')
    at com.ncr.aem.controller.ViewIncidentsController.getAllSummary(ViewIncidentsController.java:462)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    ... 40 more
 

Я полагаю, что проблема связана с приведением типа в приведенном ниже фрагменте кода:

Фрагмент кода:

 HttpHeaders responseHeaders = new HttpHeaders();
  responseHeaders.set("Baeldung-Example-Header", 
          "Value-ResponseEntityBuilderWithHttpHeaders");
    var headers = (var) new HttpHeaders();
   
    
 

Я думаю, что мне нужно будет привести объект HttpHeaders, используя правильный тип данных. Я не слишком уверен, что это за тип данных для объекта HttpHeaders. любые идеи будут полезны

Комментарии:

1. var headers = (var) new HttpHeaders(); почему вы используете HttpHeaders var ? var не является типом

2. да, var означает, что он может принимать любой тип. Сейчас я использую java 8, которая не допускает var, поэтому появляется сообщение об ошибке

3. Если вы используете Java 8, вы не можете использовать var ключевое слово; импорт чего-либо другого, что может быть вызвано var (в данном случае lombok.var ), не решит вашу проблему. Используйте HttpHeaders headers = new HttpHeaders(); вместо этого, если это необходимо для работы с Java 8.

Ответ №1:

Сообщение об ошибке уже описывает, что не так:

Caused by: java.lang.ClassCastException: class org.springframework.http.HttpHeaders cannot be cast to class lombok.var (org.springframework.http.HttpHeaders and lombok.var are in unnamed module of loader 'app')

Здесь вы пытаетесь привести HttpHeaders к var типу. var не является типом(классом)

   var headers = (var) new HttpHeaders();
 

Я не слишком уверен, что это за тип данных для объекта HttpHeaders.
любые идеи будут полезны

Как насчёт var headers = new HttpHeaders(); . ИДК, зачем тебе вообще понадобилось его разыгрывать?

Или, HttpHeaders headers = new HttpHeaders();