首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用方法引用“Object::nonNull”替换此lambda

用方法引用“Object::nonNull”替换此lambda
EN

Stack Overflow用户
提问于 2017-07-21 12:59:16
回答 1查看 3.7K关注 0票数 4

我编写了从包含日期变量的对象列表中查找最新日期的代码。

list.stream().map(segment -> segment.lastLoad).filter(x->x!=null).max(Date::compareTo).get()

但我得到声纳信号

将此lambda替换为方法引用“Object::nonNull”。

我无法弄清楚的是,我可以在哪里使用声纳线头问题所述的方法参考。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-21 13:01:30

代码语言:javascript
复制
.filter(x->x!=null) == .filter(Objects::nonNull)

有趣的是,您已经在其中使用了方法引用(但没有看到此引用):

代码语言:javascript
复制
max(Date::compareTo)

当然,您正在返回一个Date,但是从一个Optional<Date>中,您应该得到一个警告(如果使用IDEA),即直接在Optional上调用get是不安全的。

而且你也可以用max(Date::compareTo)代替max(Comparator.naturalOrder()),因为Date已经是Comparable了。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45238341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档