带反序列化列表对象的spring控制器

时间:2011-01-22 09:45:20

标签: java json spring rest jackson

@RequestMapping(value = "/tester/", method = RequestMethod.POST)
    public String  testingonly(@RequestBody List<EachObject> eachobjectlist) throws IOException {

然后我会迭代每个对象列表,但是列表中的每个项目都是LinkedHashMap类型,不是它假设是“EachObject”类型吗?

1 个答案:

答案 0 :(得分:1)

由于type erasure在运行时,通用类型EachObject在运行时不存在。 Spring无法确定此信息。 Spring只知道参数有原始类型List,它会注入任何类型的List

根据@axtavt,方法的参数的泛型类型是可访问的,但Spring可能没有实现,并且可能在将来不会实现。这是因为泛型类型可以是接口或抽象类,而Spring将无法创建给定接口或抽象类的相应实现。例如,如果您请求Fruit的列表并且Fruit有两个几乎相同的子类,则无法使用哪个子类。