#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();
почему вы используете HttpHeadersvar
? 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();