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
    对象,并收集它们以返回
    列表
    ,同时对其使用流,而无需显式实例化和
    。添加
    调用


您没有从服务器返回任何内容method@AndrewTobilko编辑了这个问题。它必须返回用户响应当
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());
}