我编写了代码来从包含日期变量的对象列表中查找最新日期。
list.stream().map(segment->segment.lastLoad).filter(x->x!=null).max(Date::compareTo).get()
但我收到声纳问题说明
Replace this lambda with method reference 'Objects::nonNull'.
我不知道在哪里可以使用声纳 lint 问题所述的方法引用。
最佳答案
.filter(x->x!=null) == .filter(Objects::nonNull)
有趣的是,您已经在以下位置使用了方法引用(但没有看到这个):
max(Date::compareTo)
此外,您显然正在返回 Date
但来自Optional<Date>
,您应该收到警告(如果使用 IDEA),调用 get
是不安全的。直接在 Optional
.
您也可以替换 max(Date::compareTo)
与 max(Comparator.naturalOrder())
自 Date
已经是Comparable
.
关于java-8 - 将此 lambda 替换为方法引用 'Objects::nonNull',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45238341/