如今我有一个goodsOptional
- Optional<Goods> goodsOptional = Optional.ofNullable(new Goods());
- goodsOptional.flatMap(g ->Optional.ofNullable(g.getOrderList())).orElse(Collections.emptyList())
flatMap里头返回的是Optional<List<Order>>,然后我们再应用orElse进行unwraap.是以faltMap可以解引用更深层次的的对象链.
5)检测Optional并履行动作
- public void ifPresent(Consumer<? super T> consumer) {
- if (value != null)
- consumer.accept(value);
- }
这是一个终端操作,不像上边的可以进行链式操作.在Optional实例应用直接调用,如不雅value存在则会调用指定的花费办法.举个栗子:
至此该类的办法和应用介绍都差不多了,最后总结须要留意的处所:
1)Optional应当只用处理返回值,而不该该作为类的字段或者办法的参数.因为如许会造成额外的复杂度.
2)应用Option应当避免直接适应构造器和get,而应当应用isElse的系列办法避免频繁的非空断定
3)map和flatMap要留意区分应用处景
【编辑推荐】
- Java工程师为何如斯的火爆?
- 大年夜0到1,Java Web网站架构搭建的技巧演进
- 申报显示:组件是Java应用易受黑客进击的关键
- 办事端I/O机能:Node、PHP、Java、Go的比较
- Java法度榜样员应知道的十条Java优化策略,让你的体系健步如飞
推荐阅读
2017年架构师最重要的48个小时 | 8折倒计时 摘要:越来越多的组织须要在数据中间/云之间移动数据,然则在迁徙过程中的一个关键风险点是停机。在2017年的营业持续性意识周这里,我欲望它能供>>>详细阅读
地址:http://www.17bianji.com/lsqh/38331.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示