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

时间:2022-12-10 22:02:28

问题描述

代码如下:

    @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传参问题:

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