SpringMvc报错解决:Failed to instantiate [java.util.List]: Specified class is an interface

来源:互联网 发布:日本美瞳 知乎 编辑:程序博客网 时间:2024/06/05 00:52

问题描述

代码如下:

    @RequestMapping("/list")    public Object getList(@RequestBody List<String> ids)    {        ids.add("A");        return ids;    }

这里只做了一个简单的事情,在Controller中定义一个方法getList(),接收List<String>类型的参数,并返回。运行后请求该接口控制提示错误:

Failed to instantiate [java.util.List]: Specified class is an interface

错误分析

不可以接收一个接口类型字段的请求参数。

解决方法

创建一个Vo类,包装需要传递的参数ids:

public class ExampleVo{    private List<String> ids;    public List<String> getIds()    {        return ids;    }    public void setIds(List<String> ids)    {        this.ids = ids;    }}

更改controller该接口对应方法接收的参数新创建Vo包装类:

    @RequestMapping("/list")    public Object getList(@RequestBody ExampleVo vo)    {        List<String> ids = vo.getIds();        ids.add("A");        return ids;    }

请求接口验证修改后的效果,完美解决List传参问题:

这里写图片描述

阅读全文
0 0