我正在使用Java 8在Spring Boot版本2上工作,当我尝试在“ createTopic”方法中将新的List对象添加到预定义的List对象(即topicList)时,出现错误。
**
TopicService.java
**
public class TopicService {
private List<TopicObject> topicList = Arrays.asList(
new TopicObject("Java", "Java Course", "Spring boot in java"),
new TopicObject("Maths", "Mathematics class","12th maths")
);
public String createTopic(TopicObject topicObj){
topicList.add(new TopicObject("Java1", "Java Course1", "Spring boot in java1"));
return "Request successful" ;
}
}
**
TopicObject.java
**
package io.javabrains.springBootStarter.controller;
import com.fasterxml.jackson.annotation.JsonProperty;
public class TopicObject {
@JsonProperty("id")
private String id;
@JsonProperty("name")
private String name;
@JsonProperty("description")
private String description;
public TopicObject() {
}
public TopicObject(String id, String name, String description) {
this.id = id;
this.name = name;
this.description = description;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
**
错误
**
2020-04-15 19:52:27.172错误15312-[nio-8080-exec-2] oaccC [。[。[/]。[dispatcherServlet]:Servlet [dispatcherServlet]的Servlet.service()路径[]引发异常[请求处理失败;嵌套异常是java.lang.UnsupportedOperationException],其根本原因是
java.lang.UnsupportedOperationException:在java.util.AbstractList.add(AbstractList.java:148)为null [java:util.AbstractList.add(AbstractList.java:108)〜[na:1.8.0_221]〜[na:1.8 .0_221]在io.javabrains.springBootStarter.Service.TopicService.createTopic(TopicService.java:29)〜[classes /:na]在io.javabrains.springBootStarter.controller.TopicController.createTopic(TopicController.java:31)〜[ classes /:na]在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)〜[na:1.8.0_221]在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:1.8.0_221] .reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_221]在java.lang.reflect.Method.invoke(Method.java:498)〜[na:1.8.0_221]在org.springframework .web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)〜[spring-web-5.0.13.RELEASE.jar:5.0.13.RELEASE]在org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)〜[spring-web-5.0 .13.RELEASE.jar:5.0.13.RELEASE],位于org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)〜[spring-webmvc-5.0.13.RELEASE。 jar:5.0.13.RELEASE]位于org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)〜[spring-webmvc-5.0.13.RELEASE.jar:5.0.13 .RELEASE]在org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)〜[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]在org .springframework.web.servlet.mvc.method。AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)〜[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]在org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)〜 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)上的[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]〜[spring-webmvc-5.0.13.RELEASE。 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:981)处的jar:5.0.13.RELEASE] org.org的[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]。 springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:884)〜[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]在javax.servlet.http.HttpServlet.service(HttpServlet.java :661)〜[tomcat-embed-core-8.5.39.jar:8.5.39],网址为org.springframework.web.servlet.FrameworkServlet。service(FrameworkServlet.java:858)〜[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)〜[tomcat嵌入-core-8.5.39.jar:8.5.39],位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)〜[tomcat-embed-core-8.5.39.jar:8.5.39]在org.apache.tomcat.websocket.server.WsFilter处的org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.39.jar:8.5.39] doFilter(WsFilter.java:52)〜[tomcat-embed-websocket-8.5.39.jar:8.5.39] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed -core-8.5.39.jar:8.5.39],位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.39.jar:8.5.39]在组织。springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)〜[spring-web-5.0.13.RELEASE.jar:5.0.13.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter .java:107)〜[spring-web-5.0.13.RELEASE.jar:5.0.13.RELEASE]在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed-内核8.5.39.jar:8.5.39]位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.39.jar:8.5.39] org.springframework.web.filter.OncePerRequestFilter.doFilter上的org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)〜[spring-web-5.0.13.RELEASE.jar:5.0.13.RELEASE] (OncePerRequestFilter.java:107)〜[spring-web-5.0.13.RELEASE.jar:5.0.13。RELEASE]位于org.apache.catalina.core.ApplicationFilterChain的org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed-core-8.5.39.jar:8.5.39]。 doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.39.jar:8.5.39]在org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)〜[spring-web -5.0.13.RELEASE.jar:5.0.13.RELEASE],位于org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)〜[spring-web-5.0.13.RELEASE.jar:5.0。 13.RELEASE]位于org.apache.catalina.core的org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed-core-8.5.39.jar:8.5.39]。组织中的ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.39.jar:8.5.39]。springorgwork.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)〜[spring-web-5.0.13.RELEASE.jar:5.0.13.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter .java:107)〜[spring-web-5.0.13.RELEASE.jar:5.0.13.RELEASE]在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)〜[tomcat-embed-内核8.5.39.jar:8.5.39]位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)〜[tomcat-embed-core-8.5.39.jar:8.5.39] org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve的org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)〜[tomcat-embed-core-8.5.39.jar:8.5.39] .java:96)[tomcat-embed-core-8.5.39.jar:8.5.39],网址为org.apache.catalina.authenticator。AuthenticatorBase.invoke(AuthenticatorBase.java:493)[tomcat-embed-core-8.5.39.jar:8.5.39]在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)[tomcat嵌入-core-8.5.39.jar:8.5.39],位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)[tomcat-embed-core-8.5.39.jar:8.5.39],位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter。上的org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)[tomcat-embed-core-8.5.39.jar:8.5.39] java:343)[tomcat-embed-core-8.5.39.jar:8.5.39]在org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)[tomcat-embed-core-8.5.39 .jar:8.5.39],位于org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)[tomcat-embed-core-8.5.39.jar:8.5.39],位于org.apache.coyote。org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:上的AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:806)[tomcat-embed-core-8.5.39.jar:8.5.39] 1498)[tomcat-embed-core-8.5.39.jar:8.5.39]在org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)[tomcat-embed-core-8.5.39 .jar:8.5.39],位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[na:1.8.0_221],位于java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_221]在org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)在Java的[tomcat-embed-core-8.5.39.jar:8.5.39]。 lang.Thread.run(Thread.java:748)[na:1.8.0_221]NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1498)[tomcat-embed-core-8.5.39.jar:8.5.39]在org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.39.jar:8.5.39]在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[na:1.8.0_221]在java.util.concurrent.ThreadPoolExecutor $ org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)上的Worker.run(ThreadPoolExecutor.java:624)[na:1.8.0_221] [tomcat-embed-core-8.5.39 .jar:8.5.39],位于java.lang.Thread.run(Thread.java:748)[na:1.8.0_221]NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1498)[tomcat-embed-core-8.5.39.jar:8.5.39]在org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.39.jar:8.5.39]在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[na:1.8.0_221]在java.util.concurrent.ThreadPoolExecutor $ org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)上的Worker.run(ThreadPoolExecutor.java:624)[na:1.8.0_221] [tomcat-embed-core-8.5.39 .jar:8.5.39],位于java.lang.Thread.run(Thread.java:748)[na:1.8.0_221]1149)[na:1.8.0_221]在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)[na:1.8.0_221]在org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable中。在java.lang.Thread.run(Thread.java:748)上运行(TaskThread.java:61)[tomcat-embed-core-8.5.39.jar:8.5.39] [na:1.8.0_221]1149)[na:1.8.0_221]在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)[na:1.8.0_221]在org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable中。在java.lang.Thread.run(Thread.java:748)上运行(TaskThread.java:61)[tomcat-embed-core-8.5.39.jar:8.5.39] [na:1.8.0_221]
>我不知道是否可以通过这种方式将新对象添加到“ topicList”中。有人可以帮忙吗?
Arrays.asLit
复原无法修改的List
对象。如果要向其中添加元素,则需要使用可修改的List
类型,例如ArrayList
:
private List<TopicObject> topicList = new ArrayList<>(Arrays.asList(
new TopicObject("Java", "Java Course", "Spring boot in java"),
new TopicObject("Maths", "Mathematics class", "12th maths")
));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句