首页 > 解决方案 > 无法返回列表在 Java 中使用构建器

问题描述

我有一个返回的保存方法CommandDTO

// ...

final MenuItem saved = menuItemRepository.save(menuItem);
return CommandDTO.builder().uuid(saved.getUuid()).build();

这是我的CommandDTO

@Value
@RequiredArgsConstructor
@Builder
public class CommandDTO {
    UUID uuid;
}

另一方面,我将方法更改为接受请求列表而不是单个请求,它应该将已保存记录的列表返回为List<CommandDTO>. 但是,我无法创建必要的 return 子句:

final List<MenuItem> saved = menuItemRepository.saveAll(menuItems);

// here I have the uuid list of the saved records
List<UUID> uuidList = saved.stream().map(MenuItem::getUuid)
    .collect(Collectors.toList());

return List<CommandDTO>().builder().uuid(uuidList).build(); // ???

我应该如何返回值List<CommandDTO>

标签: javaarrayslistbuild

解决方案


调用smap的流UUID来转换它们。

return saved.stream().map(MenuItem::getUuid)
    .map(uuid -> CommandDTO.builder().uuid(uuid).build())
    .collect(Collectors.toList());

推荐阅读