Java 返回布尔值而不是列表 具有字段id、名称和类型的用户类 实现了一个从用户获取类型并将其作为列表返回的方法 必须将字段从类型映射到用户响应,才能将其作为列表返回 private List getUserResponse(UserRequest){ List Users=userServiceClient.getById(); List userResponses=new ArrayList(); 列表类型列表=getType(用户); 如果(!typesList.isEmpty()){ 返回typesList.stream() .map(type->userResponses.add(新的UserResponse(type.getGuid(),type.getName(),type.getName(),type.getLinkedTo())) .collect(Collectors.toList()); } 返回集合。emptylist(); }
问题是,我无法将其作为列表返回,而是获取一个布尔值Java 返回布尔值而不是列表 具有字段id、名称和类型的用户类 实现了一个从用户获取类型并将其作为列表返回的方法 必须将字段从类型映射到用户响应,才能将其作为列表返回 private List getUserResponse(UserRequest){ List Users=userServiceClient.getById(); List userResponses=new ArrayList(); 列表类型列表=getType(用户); 如果(!typesList.isEmpty()){ 返回typesList.stream() .map(type->userResponses.add(新的UserResponse(type.getGuid(),type.getName(),type.getName(),type.getLinkedTo())) .collect(Collectors.toList()); } 返回集合。emptylist(); },java,spring-boot,collections,orm,java-stream,Java,Spring Boot,Collections,Orm,Java Stream,问题是,我无法将其作为列表返回,而是获取一个布尔值 有什么有效的方法可以做到这一点吗?代码审阅者不希望我对每一个都使用,而是返回列表一个更好的方法 private List<UserResponse> getUserResponse(UserRequest request) { List<User> Users = userServiceClient.getById(); List<Types> TypesList = getType(User
有什么有效的方法可以做到这一点吗?代码审阅者不希望我对每一个都使用,而是返回列表一个更好的方法
private List<UserResponse> getUserResponse(UserRequest request) {
List<User> Users = userServiceClient.getById();
List<Types> TypesList = getType(Users);
return typesList.stream()
.map(type -> new UserResponse(type.getId(), type.getName(), type.getName(), type.getLinkedTo()))
.collect(Collectors.toList());
}
private List getUserResponse(UserRequest){
List Users=userServiceClient.getById();
列表类型列表=getType(用户);
返回typesList.stream()
.map(type->newuserresponse(type.getId()、type.getName()、type.getName()、type.getLinkedTo())
.collect(Collectors.toList());
}
原因:
- 如果
为空,则返回空的typesList
,与代码中的List
一样Collections.emptyList
- 它
s映射到将
对象,并收集它们以返回UserResponse
,同时对其使用流,而无需显式实例化和列表
调用。添加
typesList.isEmpty()
检查List::add
返回的内容以及Stream::map
执行的操作时,您不会从该方法返回任何内容。您正在创建一个布尔值的列表。代码总体上看起来好像您错误地将for循环转换为流,原因是:不要。保留循环。@AndrewTobilko编辑问题以返回空列表
{
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();
}
private List<UserResponse> getUserResponse(UserRequest request) {
List<User> Users = userServiceClient.getById();
List<Types> TypesList = getType(Users);
return typesList.stream()
.map(type -> new UserResponse(type.getId(), type.getName(), type.getName(), type.getLinkedTo()))
.collect(Collectors.toList());
}