Oracle官方引入Optional的意图官方引入Optional的本意是使用它来更优雅的处理JAVA中最常见的NullPointException问题 。举一个简单的例子,如果不使用Optional,下面的这个语句可能抛出异常:
String version = computer.getSoundcard().getUSB().getVersion();当然你可以使用如下的方式来做check:
String version = "UNKNOWN";if(computer != null){ Soundcard soundcard = computer.getSoundcard(); if(soundcard != null){ USB usb = soundcard.getUSB(); if(usb != null){ version = usb.getVersion(); } }}很显然上面这种方式导致代码的可读性变低,而且你怎么能保证把所有的返回值都去check一遍? 所以Java 8中给出了Optional这个解决方案 。如果使用Optional上面的语句就可以写成如下的形式:
String name = computer.flatMap(Computer::getSoundcard) .flatMap(Soundcard::getUSB) .map(USB::getVersion) .orElse("UNKNOWN");总结一下Optional的意图和作用
- Optional并不能解决NullPointerException问题,但是它提供了一种机制,这种机制可以让方法的调用者,或者Optional变量的使用这非常明确的知道这个变量中有可能不存在任何值 。这样就会强迫调用这去考虑,如果没有值自己应该怎么去处理 。
- Optional另外的一个好处就是它本身是支持流式编程 。
【Java中使用Optional有什么好处】
推荐阅读
- 百度死链提交
- Linux环境下使用openssl生成https证书
- Java配置文件敏感信息处理
- 林冲恨宋江吗 水浒传中高俅为什么要设计陷害林冲?
- JS 中的require 和 import 区别
- PS中的通道初步认识
- 使用python构建递归算法,实现查找电脑中的所有文件
- 包装普洱茶用棉纸的原因是什么
- 怎么保存茶叶 可预防变质
- 茶叶有没有保质期 该怎么保存