簡體   English   中英

如何將此代碼更改為流和 lambda 表達式

[英]how to change this code to streams and lambda expressions

在這里,我希望獲取用戶注冊的課程列表。 這些課程存在於外部 api 中。 我正在使用 restTemplate 獲取這些課程。 現在,請幫助我使用流和 lambda 表達式更改代碼。

public List<UserCourseEntity> getUsercourseByUserId(String userId) {

    HttpHeaders headers = new HttpHeaders();
    headers.setAccept(Arrays.asList(org.springframework.http.MediaType.APPLICATION_JSON));
    HttpEntity<UserCourseEntity> entity = new HttpEntity<UserCourseEntity>(headers);
    String url = userCourseInfoService;
    UriComponentsBuilder uriComponentBuilder = UriComponentsBuilder.fromUriString(url).queryParam("userId", userId);

    ResponseEntity<List<UserCourseEntity>> responseEntity = restTemplate.exchange(
            uriComponentBuilder.build().toUri(), HttpMethod.GET, entity,
            new ParameterizedTypeReference<List<UserCourseEntity>>() {
            });

    List<UserCourseEntity> userCourseEntity = responseEntity.getBody();

    return userCourseEntity;
}

如果響應僅以List形式出現,則無需做太多事情。

public Stream<UserCourseEntity> getUsercourseByUserId(String userId) {

    return userCourseEntity.stream();

雖然也許userCourseEntity (更好的名稱 userCourseEntities)可以是 null。

應該知道 collections 像List有一個stream()方法來遍歷它們。

暫無
暫無

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

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