簡體   English   中英

如何比較 Optional<Long> 與龍

[英]how to compare Optional<Long> with Long

我需要比較兩個城市的 ID。 第一個是Optional<Long>,第二個是Long。

  public boolean isEqual(Comment comment) {
    return userService.findById(comment.getUser().getId())
        .map(user -> user.getCity().getId()) // Optional <Long>
        .filter(user -> user
            .equals(postService.findById(comment.getPost().getId())
                .map(p -> p.getUser().getCity().getId())))  // Long
        .isPresent();
  }

我怎樣才能做到這一點?

您可以直接比較選項:

public boolean isEqual(Comment comment) {
  Optional<Long> userCityFromComment = userService
    .findById(comment.getUser().getId())
    .map(user -> user.getCity().getId());
  Optional<Long> userCityFromPost = postService
    .findById(comment.getPost().getId())
    .map(p -> p.getUser().getCity().getId());
  return userCityFromComment.equals(userCityFromPost);
}

請注意Optional.empty().equals(Optional.empty())true

暫無
暫無

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

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