gpt4 book ai didi

java - DozerMapper默认映射,设置为HashSet,这会破坏元素的顺序

转载 作者:行者123 更新时间:2023-12-02 02:35:18 25 4
gpt4 key购买 nike

我有 2 个 DTOS,即 OutputResponse 和 OutputDTO。类的格式如下:

class OutputDTO{

private LinkedHashSet<String> items;
}

class OutputResponse{

private Set<String> items;
}

当我尝试使用 DozerMapper 映射这两个对象时,它将目标映射到 HashSet 而不是 LinkedHashSet。

class X{

DozerBeanMapper mapper;

mapper.map(OutputDTO.class, OutputResponse.class);

}

在上面的场景中,map()方法将LinkedHashSet映射到HashSet,这破坏了输出响应的顺序。对此有什么建议吗?

最佳答案

如果您希望 OutputResponse 中的项目集具有某种顺序,则需要使用不同的 Collection 实现。根据定义,集合是无序的。 List 是有序的,LinkedHashSet 也是如此。通过将项目定义为 Set,您就定义了没有特定的顺序,并且 Dozer 通过使用 HashSet 来遵守该规范,HashSet 也是无序的。

关于java - DozerMapper默认映射,设置为HashSet,这会破坏元素的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57207633/

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