Java 尝试将新列表对象添加到预定义列表对象时出错
我正在使用Java8开发SpringBootVersion2,当我试图在“createTopic”方法中向预定义的列表对象(即topicList)添加一个新的列表对象时,我遇到了一个错误 ** TopicService.java ** ** 错误 ** 2020-04-15 19:52:27.172错误15312---[nio-8080-exec-2] o、 a.c.c.c.[/].[dispatcherServlet]:的Servlet.service() 路径为[]的上下文中的servlet[dispatcherServlet]引发异常 [请求处理失败;嵌套异常为 java.lang.UnsupportedOperationException]及其根本原因 java.lang.UnsupportedOperationException:在 add(AbstractList.java:148)~[na:1.8.0_221]at add(AbstractList.java:108)~[na:1.8.0_221]at io.javabrains.springBootStarter.Service.TopicService.createTopic(TopicService.java:29) ~[classes/:na]at io.javabrains.springBootStarter.controller.TopicController.createTopic(TopicController.java:31) sun.reflect.NativeMethodAccessorImpl.invoke0(本机)处的~[classes/:na] 方法)~(na:1.8.0_221)at invoke(NativeMethodAccessorImpl.java:62) ~(na:1.8.0_221)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.lang.reflect.Method.invoke(Method.java:498)的~[na:1.8.0221] ~(na:1.8.0_221)at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) ~[spring-web-5.0.13.RELEASE.jar:5.0.13.RELEASE]at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-5.0.13.RELEASE.jar:5.0.13.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894) ~[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800) ~[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) ~[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) ~[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:981) ~[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:884) ~[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]at javaservlet.http.HttpServlet.service(HttpServlet.java:661) ~[tomcat-embed-core-8.5.39.jar:8.5.39]at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:858) ~[spring-webmvc-5.0.13.RELEASE.jar:5.0.13.RELEASE]at javaservlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.39.jar:8.5.39]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.39.jar:8.5.39]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.39.jar:8.5.39]at org.apache.tomcat.websocket.server.WsFilter.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]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.39.jar:8.5.39]at org.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]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.39.jar:8.5.39]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.39.jar:8.5.39]at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) ~[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]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.39.jar:8.5.39]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.39.jar:8.5.39]at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) ~[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]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.39.jar:8.5.39]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)Java 尝试将新列表对象添加到预定义列表对象时出错,java,list,java-8,unsupportedoperation,Java,List,Java 8,Unsupportedoperation,我正在使用Java8开发SpringBootVersion2,当我试图在“createTopic”方法中向预定义的列表对象(即topicList)添加一个新的列表对象时,我遇到了一个错误 ** TopicService.java ** ** 错误 ** 2020-04-15 19:52:27.172错误15312---[nio-8080-exec-2] o、 a.c.c.c.[/].[dispatcherServlet]:的Servlet.service() 路径为[]的上下文中的servlet
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" ;
}
}
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;
}
}
private List<TopicObject> topicList = Arrays.asList(
new TopicObject("Java", "Java Course", "Spring boot in java"),
new TopicObject("Maths", "Mathematics class","12th maths")
);
private List<TopicObject> topicList = new ArrayList<>(Arrays.asList(
new TopicObject("Java", "Java Course", "Spring boot in java"),
new TopicObject("Maths", "Mathematics class", "12th maths")
));