Java 模型映射器是否支持用bean属性列表映射bean?

Java 模型映射器是否支持用bean属性列表映射bean?,java,modelmapper,Java,Modelmapper,我试图映射两个JavaBean结构(这里是简化的): 其中,源foocainer包含一个项目列表,其中一些项目的属性message设置为字符串,一些项目的属性值为null 在映射结果中,我发现foo.Item列表似乎正确映射到bar.Item列表,并且第一条消息属性也正确映射。但是在message属性值为null的第一个项目之后,无论源属性的内容如何,以下项目的所有message属性值都映射到null 通过调试,我发现了原因: 目标属性值为null后,消息属性路径在MappingEngineIm

我试图映射两个JavaBean结构(这里是简化的):

其中,源
foocainer
包含一个项目列表,其中一些项目的属性
message
设置为
字符串
,一些项目的属性值为
null

在映射结果中,我发现
foo.Item
列表似乎正确映射到
bar.Item
列表,并且第一条
消息
属性也正确映射。但是在
message
属性值为
null
的第一个项目之后,无论源属性的内容如何,以下项目的所有
message
属性值都映射到
null

通过调试,我发现了原因: 目标属性值为
null
后,消息属性路径在MappingEngineImpl:207中标记为阴影,然后在MappingEngineImpl:142中忽略后续项


这是moddelmapper的一个bug,还是我必须以另一种方式配置modelmapper来启用bean属性列表的映射?

对我来说,这显然是一个bug。实际上,我在使用ModelMapper时遇到了同样的问题,这就是我发现这个问题的原因

空的着色路径看起来很危险,因为相同的上下文用于映射其他对象。我已经删除了这个功能,它似乎像预期的那样工作

我在ModelMapper页面上围绕此错误创建了一个问题:

此外,我修复了这个问题并将其发布到GitHub。我已经提出了一个拉取请求,希望它能被合并到ModelMapper的下一个版本中:

感谢您的工作!现在,我已经映射了硬编码的bean,但是如果您的拉取成功,我将再次尝试modelmapper:)谢谢您发布这篇文章。这确实是一个bug,我刚刚在github上发布了一个补丁。您可以立即获取修复版本,也可以等待我希望在几天后发布的下一个版本。包括修复版本在内的0.4.0已经发布。@Jonathan谢谢,下次接触该项目时我会尝试的;)
package foo;
public class Container {
    private List<Item> items;
    public List<Item> getItems() { return items; }
    public void setItems(List<Item> items) { this.items = items; }
}

public class Item {
    private String message;
    public String getMessage() { return message; }
    public void setMessage(String message) { this.message = message; }
}
ModelMapper mapper = new ModelMapper();
bar.Container barContainer = mapper.map(fooContainer, bar.Container.class);