无法 return 在 Java 中使用生成器列出 <T>
Cannot return List<T> using builder in Java
我有一个 returns CommandDTO
.
的保存方法
// ...
final MenuItem saved = menuItemRepository.save(menuItem);
return CommandDTO.builder().uuid(saved.getUuid()).build();
这是我的 CommandDTO
:
@Value
@RequiredArgsConstructor
@Builder
public class CommandDTO {
UUID uuid;
}
另一方面,我更改了接受请求列表而不是单个请求的方法,它应该 return 已保存记录列表为 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(); // ???
我应该如何 return 将值设为 List<CommandDTO>
?
在 UUID
的流上调用 map
来转换它们。
return saved.stream().map(MenuItem::getUuid)
.map(uuid -> CommandDTO.builder().uuid(uuid).build())
.collect(Collectors.toList());
您正在尝试将列表传递给接受单个 UUID 的方法。您可以将地图添加到您的流链
List<CommandDTO> resultList = saved.stream()
.map(MenuItem::getUuid)
.map(uuid -> CommandDTO.builder(uuid).build())
.collect(Collectors.toList());
有几种不同的方法可以实现这一点。这不一定是最有效的。希望它回答了你的问题。
我有一个 returns CommandDTO
.
// ...
final MenuItem saved = menuItemRepository.save(menuItem);
return CommandDTO.builder().uuid(saved.getUuid()).build();
这是我的 CommandDTO
:
@Value
@RequiredArgsConstructor
@Builder
public class CommandDTO {
UUID uuid;
}
另一方面,我更改了接受请求列表而不是单个请求的方法,它应该 return 已保存记录列表为 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(); // ???
我应该如何 return 将值设为 List<CommandDTO>
?
在 UUID
的流上调用 map
来转换它们。
return saved.stream().map(MenuItem::getUuid)
.map(uuid -> CommandDTO.builder().uuid(uuid).build())
.collect(Collectors.toList());
您正在尝试将列表传递给接受单个 UUID 的方法。您可以将地图添加到您的流链
List<CommandDTO> resultList = saved.stream()
.map(MenuItem::getUuid)
.map(uuid -> CommandDTO.builder(uuid).build())
.collect(Collectors.toList());
有几种不同的方法可以实现这一点。这不一定是最有效的。希望它回答了你的问题。