簡體   English   中英

返回 boolean 而不是列表

[英]Returning boolean instead of list

  1. 用戶 class 具有字段 id、名稱和類型
public class User {
    private String id;
    private String name;
    private List<Types> types;
}
  1. 類型 class 具有字段 id、name、linkedTo
{
    private String id;
    private String name;
    private String linkedTo;

}
  1. 實現了一種從用戶獲取類型並將其作為列表返回的方法
private List<Types> getType(List<User> Users) {
        return Users
                .stream()
                .map(User::gettypes)
                .flatMap(List::stream)
                .collect(Collectors.toList());
    }}
  1. 現在,必須 map 來響應正文。 為此,我有回應 class:
    public class UserResponse {

    private String id;
    private String type;
    private String name;
    private String linkedTo;

}
  1. 必須 map 從 Types 到用戶響應的字段才能將其作為列表返回
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();
    }

這是問題所在,我無法將其作為列表返回,而是獲得 boolean..

有沒有有效的方法來做到這一點? 代碼審閱者不希望我使用每個並返回列表

更好的方法是

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());
}

原因:

  • 如果typesList為空,這將返回空List ,如代碼中的Collections.emptyList

  • mapUserResponse對象並收集它們以返回List<UserResponse>同時使用 Stream 為它沒有顯式實例化和.add調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM