gpt4 book ai didi

java - 使用 Java8 将一个对象映射到另一个(DTO)

转载 作者:行者123 更新时间:2023-12-01 14:17:43 27 4
gpt4 key购买 nike

你能告诉我是否存在某种将一个实体对象映射到另一个 dto 对象的漂亮方法吗?当我需要转换时 List<ObjEntity>List<ObjDTO>我创建了那个函数:

public class Converter {
public static Function<ObjEntity, ObjDTO> MYOBJ_ENTITY_TO_DTO = objEntity -> {
ObjDTO dto = new ObjDTO();

dto.setId(objEntity.getId());
dto.setName(objEntity.getName());
dto.setNote(objEntity.getNote());
// ...

return dto;
};
}

我像这样使用它:
List<ObjDTO> dtos =  objEntitiesList.stream().map(Converter.MYOBJ_ENTITY_TO_DTO).collect(Collectors.toList());

但是如果我只需要转换一个对象呢?我应该使用那个功能 MYOBJ_ENTITY_TO_DTO为此,如何?或者最好的做法是什么?是的,我可以在 Converter 类中执行经典函数,如下所示:
public static ObjEntity dtoToEntity(ObjDTO dto) {
// map here entity to dto and return entity
}

但它是旧式的。 java 8 中存在一些新的实践吗?类似于我的 lambda 列表示例?

最佳答案

ObjDTO dto = MYOBJ_ENTITY_TO_DTO.apply(entity);

我经常看到相反的情况:而不是 MYOBJ_ENTITY_TO_DTO , 定义 entityToDto作为方法和使用
List<ObjDTO> dtos =  objEntitiesList.stream().map(Converter::entityToDto).collect(Collectors.toList());

对于列表。

关于java - 使用 Java8 将一个对象映射到另一个(DTO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47332385/

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