如何将String映射到List和List to String?
考虑一下我们有跟随classess
class People{
private String primaryEmailAddress;
private String secondaryEmailAddress;
private List<String> phones;
//getter and setters
}
class PeopleTO{
private List<String> emailAddress;
private String primaryPhone;
private String secondaryPhone;
//getter and setters
}
在Dozer和Orika中,我们可以使用以下代码行轻松映射
fields("primaryEmailAddress", "emailAddress[0]")
fields("secondaryEmailAddress", "emailAddress[1]")
fields("phones[0]", "primaryPhone")
fields("phones[1]", "secondaryPhone")
我如何在MapStruct中进行相同类型的映射?我在哪里可以找到关于mapstruct的更多例子?
答案 0 :(得分:10)
以下示例将emailAddress
中PeopleTO
列表中的元素映射到primaryEmailAddress
的{{1}}和secondaryEmailAddress
属性。
MapStruct无法直接映射到集合,但它允许您实现在映射之后运行的方法以完成该过程。我使用了一种此类方法将People
的{{1}}和primaryPhone
属性映射到secondaryPhone
中PeopleTO
列表的元素中。
phones
答案 1 :(得分:2)
我可以在这里看到一些例子:https://github.com/mapstruct/mapstruct-examples
查看此模块以了解您的具体要求(可转换为非Iterable):https://github.com/mapstruct/mapstruct-examples/tree/master/mapstruct-iterable-to-non-iterable
另一个在这里:http://blog.goyello.com/2015/09/08/dont-get-lost-take-the-map-dto-survival-code/
不确定是否可以将非迭代映射到Iterable。