我有个springmvc 接口需要接受泛型对象
时间: 2023-12-12 12:03:06 浏览: 32
Spring MVC默认使用Jackson库进行JSON的序列化和反序列化操作。如果需要接收泛型对象,则需要在Controller方法的参数上使用`@RequestBody`注解,同时使用`ParameterizedTypeReference`类来指定泛型类型。
例如,如果需要接收`List<User>`类型的对象,则可以这样写:
```java
@RequestMapping(value = "/users", method = RequestMethod.POST)
public void createUser(@RequestBody List<User> userList) {
// 处理userList
}
```
如果需要接收任意泛型类型的对象,则可以这样写:
```java
@RequestMapping(value = "/generic", method = RequestMethod.POST)
public void handleGeneric(@RequestBody ParameterizedTypeReference<List<T>> typeRef) {
List<T> data = restTemplate.exchange(url, HttpMethod.POST, null, typeRef).getBody();
// 处理data
}
```
需要注意的是,`ParameterizedTypeReference`只用于反序列化JSON字符串,不能用于序列化Java对象。如果需要序列化Java对象,可以使用`TypeReference`类。