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


问题描述

代码如下:

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

这里写图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值