【发布时间】:2020-02-13 09:54:05
【问题描述】:
- 具有字段 id、名称和类型的用户类
public class User {
private String id;
private String name;
private List<Types> types;
}
- 具有字段 id、name、linkedTo 的类型类
{
private String id;
private String name;
private String linkedTo;
}
- 实现了一种从用户获取类型并将其作为列表返回的方法
private List<Types> getType(List<User> Users) {
return Users
.stream()
.map(User::gettypes)
.flatMap(List::stream)
.collect(Collectors.toList());
}}
- 现在,必须映射到响应正文。为此,我有响应类:
public class UserResponse {
private String id;
private String type;
private String name;
private String linkedTo;
}
- 必须将类型中的字段映射到用户响应以将其作为列表返回
private List<UserResponse> getUserResponse(UserRequest request) {
List<User> Users = userServiceClient.getById();
List<UserResponse> userResponses = new ArrayList<>();
List<Types> TypesList = getType(Users);
if (!typesList.isEmpty()) {
return typesList.stream()
.map(type -> userResponses.add(new UserResponse( type.getGuid(),type.getName(),type.getName(),type.getLinkedTo())))
.collect(Collectors.toList());
}
return collections.emptylist();
}
这是问题所在,我无法将它作为列表返回,而是得到一个布尔值..
有没有有效的方法来做到这一点?代码审阅者不希望我使用每个并返回列表
【问题讨论】:
-
您没有从该方法返回任何内容
-
@AndrewTobilko 编辑了这个问题。它必须返回用户响应
-
现在你没有从方法返回任何东西当
typesList.isEmpty() -
查看
List::add的返回值,以及Stream::map的作用。您正在列出Boolean。无论出于何种原因,代码整体看起来就像您错误地将 for 循环转换为流:不要。离开循环。 -
@AndrewTobilko 编辑问题以返回空列表
标签: java spring-boot collections orm java-stream