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


问题描述

代码如下:

    @RequestMapping("/list")
    public Object getList(@RequestBody List ids)
    {
        ids.add("A");

        return ids;
    }

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

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

错误分析

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

解决方法

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

public class ExampleVo
{
    private List ids;

    public List getIds()
    {
        return ids;
    }

    public void setIds(List ids)
    {
        this.ids = ids;
    }
}

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

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

        return ids;
    }

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

SpringMvc报错解决:Failed to instantiate [java.util.List]: Specified class is an interface_第1张图片

你可能感兴趣的:(异常处理)