如题:在实际的操作中想要接收前台传输过来的list数据并进行解析,操作。但是在具体的执行过程中发遇到了问题list类型的数据没有办法准确接收,总是报错。错误信息:
Failed to instantiate [java.util.List]: Specified class is an interface,在百度之后得到的结果说具体的原因是list并不是java的基本数据类型,所以无法直接传输。解决方案五花八门,我自己试过之后推荐一种是对于接受的数据封装一个bean,这个bean中存放一个list对象。
推荐慕课网的一个视频课:我是慕课数据绑定的视频链接
代码如下:
@PostMapping("/newTest") public Map<String,Object> newTest(TextBean textBean){ List<Integer> list = textBean.getList(); for (Integer integer : list) { System.out.println("==============="+integer); } }
封装的bean数据如下
import java.util.List; public class TextBean { private List<Integer> list; public TextBean() { } public TextBean(List<Integer> list) { this.list = list; } public List<Integer> getList() { return list; } public void setList(List<Integer> list) { this.list = list; } }
这样就可以把list的数据接收过来了。
之前还犯了一个严重的错误:我是使用postman进行数据测试的,在postman中数据list的名字,后面跟着的数据我输入的是[1,2,3](主要还是基础不够,对于list的数据虽然java中的toString方法进行封装过后呈现出来的list的样式是[1,2,3]但是在传输的时候还是应该进行修改传输1,2,3。。。切记,坑,勿踩)