gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 09:35:58 24 4
gpt4 key购买 nike

我正在尝试映射两个 JavaBean 结构(此处已简化):

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; }
}

此外,我在包 bar 中有相同属性的相等 Bean,并在两者之间进行映射

ModelMapper mapper = new ModelMapper();
bar.Container barContainer = mapper.map(fooContainer, bar.Container.class);

其中源 fooContainer 包含一个项目列表,其中一些项目的属性 message 设置为 String 并且其中一些项目具有 null 作为属性值。

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

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

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

最佳答案

在我看来这绝对像是一个错误。实际上,我自己使用 ModelMapper 时遇到了同样的问题,这就是我发现这个问题的原因。

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

我在 ModelMapper 页面上围绕这个错误创建了一个问题: http://code.google.com/p/modelmapper/issues/detail?id=19

另外,我修复了这个问题并将其发布到 GitHub。我已经提出了一个 pull request,希望它将被合并到下一个版本的 ModelMapper 中: https://github.com/chrisdail/modelmapper

关于java - 模型映射器是否支持使用 bean 属性列表映射 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11033780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com