Java实体对象转为MultiValueMap类型
时间: 2024-09-03 13:03:42 浏览: 48
在Java中,如果你有一个普通的Java实体对象(通常是POJO,Plain Old Java Object),而你想把它转换成`MultiValueMap`,通常是在处理HTTP请求的分段体(Multipart Form Data)或者是处理多个值关联到同一个键的情况。`MultiValueMap`是`org.apache.commons.collections4.map.MultiValuedMap`的一部分,常见于Apache Commons Collections库。
以下是一个基本的例子,假设你有一个名为`User`的简单类:
```java
public class User {
private String name;
private List<String> emails;
// getters and setters
}
```
你可以这样做:
```java
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.collections4.MultiValueMap;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public MultiValueMap<String, String> userToMultiValueMap(User user) {
MultiValueMap<String, String> multiValueMap = new HashMap<>();
if (user.getName() != null) {
multiValueMap.put("name", user.getName());
}
if (user.getEmails() != null) {
for (String email : user.getEmails()) {
multiValueMap.put("emails", email);
}
}
return MapUtils.unmodifiableMultiValueMap(multiValueMap);
}
```
这个函数会将用户的名字和所有邮件地址分别添加到`MultiValueMap`的两个键下,如果有多个邮件地址,则会在"emails"键下添加列表。