【发布时间】:2019-07-16 00:14:17
【问题描述】:
我有两个类,想使用 org.dozer.Mapper(http://dozer.sourceforge.net/) 将女性对象的属性映射到男性对象。
第一堂课是:
public class Male {
private String name;
private String surname;
private Map<String, List<Contact>> contacts;
....
第二类是:
public class Female {
private String name;
private String surname;
private String mobile;
private String dateOfBirth;
private Map<String, List<Contact>> contacts;
...
第三类是:
public class Contact {
private String street;
private String postcode;
private String email;
...
我使用的类似对象属性的 Map 是 LinkedHashMap,而 Map 中的值 List 是 ArrayList。 当我尝试使用推土机对它们进行映射时,作为哈希映射中的值的数组列表不是带有对象的列表,并且如图所示:
Map<String, List<Contact>> contact = new LinkedHashMap<>();
List<Contact> listOfContacts = new ArrayList<>();
Contact contactObj = new Contact();
contactObj.setEmail("lala@gmail.com");
contactObj.setPostcode("1233355");
contactObj.setStreet("street");
listOfContacts.add(contactObj);
contact.put("2131323213", listOfContacts);
femaleObj.setContact(contact);
Mapper objectMapper = new DozerBeanMapper();
Male maleObj = objectMapper.map(femaleObj, Male.class);
如何在Male对象的List中获取对象列表?
【问题讨论】:
-
这是一个非常模糊的问题。您只显示您通过
Male maleObj = objectMapper.map(femaleObj, Male.class);将female映射到Male,而没有显示如何 完成;除了LinkedHashMap或ArrayList没有出现在您发布的代码中。 -
我已经编辑了代码,你可以看看
-
那你的问题是什么?
-
如何在男性对象的 List 中获取对象列表 - 这没什么意义
-
包含对象的列表(来自 Contact 类的实例)未正确映射到我的 Male 对象中。您可以从我发布的图片中看到它。