【发布时间】:2019-07-26 00:47:48
【问题描述】:
我正在尝试使用 Dozer 将 List<String[]> 转换为 List<Object>,但无法使用映射器 API configuration 将索引值映射到属性字段。
如何将String[] 的成员映射到各个对象字段,每个索引都针对特定字段? (例如[0] -> name和[1] -> role)
DozerBeanMapper mapper = new DozerBeanMapper();
BeanMappingBuilder builder = new BeanMappingBuilder() {
@Override
protected void configure() {
mapping(String[].class, User.class)
.fields(this_(), "name"); // HOW do I specify index?**
}
};
mapper.addMapping(builder);
List<String[]> users = new ArrayList<>();
String[] user1 = {"Jill", "SDE"};
String[] user2 = {"Jack", "PM"};
users.add(user1);
users.add(user2);
List<User> userList = mapObjects(mapper, users, User.class);
mapObjects() 在哪里;
private static <T1, T2> List<T2> mapObjects(DozerBeanMapper mapper, List<T1> sourceList, Class<T2> destinationClazz) {
try {
return sourceList.stream()
.map(i -> mapper.map(i, destinationClazz))
.collect(Collectors.toList());
} catch (Exception e) {
...
}
return new ArrayList<>();
}
和User 类;
class User {
String name;
String role;
// getter & setter
}
【问题讨论】:
-
答案非常适合您的问题!你能把你的反馈给我吗?谢谢!