java可选项_在Java中链接可选项8
你可以这样做:
Optional resultOpt = Optional.of(find1()
.orElseGet(() -> find2()
.orElseGet(() -> find3()
.orElseThrow(() -> new WhatEverException()))));
虽然我不确定它提高了可读性IMO.番石榴提供了一种连锁方式:
import com.google.common.base.Optional;
Optional resultOpt = s.find1().or(s.find2()).or(s.find3());
它可能是您的问题的另一个替代方案,但不使用JDK中的标准可选类.
如果要保留标准API,可以编写一个简单的实用方法:
static Optional or(Optional first, Optional second) {
return first.isPresent() ? first : second;
}
接着:
Optional resultOpt = or(s.find1(), or(s.find2(), s.find3()));
如果你有很多可选的链接,也许最好使用Stream方法,如其他已经提到的.
java可选项_在Java中链接可选项8相关推荐
- java console不见了_解决eclipse中console控制选项不见了的方法
eclipse是一款用于编译java语言的程序,利用这款软件我们可以制作很多有趣的小程序,也可以制作一些大型的软件项目.在实际的操作中,eclipse是由多个工具栏组成的,其中console就是用于查 ...
- java coin介绍_代码示例中的Java 7:Project Coin
java coin介绍 该博客通过代码示例介绍了一些新的Java 7功能,这些项目在Project Coin一词下进行了概述. Project Coin的目标是向JDK 7添加一组小的语言更改.这些更 ...
- ubuntu java classpath 设置_在Ubuntu中正确设置java classpath和java_home
我有错误 Exception in thread"main" java.lang.NoClassDefFoundError: 当我尝试在Ubuntu上运行编译类时.我使用的是一个非 ...
- java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创
由于项目中用到了Applet与Servlet之间(客户端用Applet.Server端用Servlet)的通信,要求: 1:>客户端与服务端必须出Log. 2:>浏览器在加载Applet时 ...
- java jar 目录_将Java类路径中的所有jar包括在一个目录中
有没有一种方法可以将所有的jar文件包含在类路径的目录中? 我正在尝试java -classpath lib / *.jar :. my.package.Program,它无法找到当然在这些罐子里的类 ...
- java gradle构建_在Gradle中为JPMS构建Java 6-8库
java gradle构建 通过提供Java 9 module-info.class了解如何使用Gradle构建支持JPMS( Java平台模块系统 )的Java 6-8库. 介绍 如果您需要JPMS ...
- java避免空指针异常_避免Java中的空指针异常
java避免空指针异常 空指针异常是Java中最常见,最烦人的异常. 在这篇文章中,我想避免这种不希望的异常. 首先让我们创建引发空指针异常的示例 private Boolean isFinished ...
- java 异常对象_在java中的异常处理中的异常对象是什么
展开全部 Exception类以及他的子类 的一个实例对象 比如32313133353236313431303231363533e58685e5aeb931333264633563 常见异常 1. j ...
- java skip函数_【Java必修课】图说Stream中的skip()和limit()方法及组合使用
1 简介 本文将讲解Java 8 Stream中的两个方法:skip()和limit().这两个方法是Stream很常用的,不仅各自会被高频使用,还可以组合出现,并能实现一些小功能,如subList和 ...
- java方法重载_在Python中该如何实现Java的重写与重载
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:清风python PS:如有需要Python学习资料的小伙伴可以加点击 ...
最新文章
- 卡片使用_APP必备的设计元素!卡片
- 漫画 | 人到中年,一地鸡毛
- VC++如何判断当前操作系统是32位还是64位?
- Android插件化原理解析——ContentProvider的插件化
- TYVJ P1051 选课 Label:多叉转二叉树形dp(虐心♥)
- 前端学习(3104):react-hello-虚拟dom和真实dom
- mysql转移数增删改查_MySql CURD操作(数据的增删改查)
- VMware中的三种网络模式-----Host-only模式
- WEB消息提醒实现之二 实现方式-websocket实现方式
- 统一配置中心选型对比
- java的字符_Java中的字符
- postman下载及安装
- 欣赏的心态去发现生活中的美
- [UWP开发] Facebook SDK使用(一) —— 配置SDK及Facebook登陆
- canvas实现点线动画效果
- IIS 服务器常见漏洞
- Simulink仿真入门到精通(五) Simulink模型的仿真
- [逆向]汇编JCC指令举例
- app模式会被第三方平台模式取代吗_未来APP将取代移动网站? - 搜外问答
- 机器学习中的特征工程详解