如何比较 Optional<Long> 和 Long
how to compare Optional<Long> with Long
我需要比较两个城市是。
第一个是Optional ,第二个是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
。
我需要比较两个城市是。
第一个是Optional
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
。