Java中使用Optional有什么好处

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的意图和作用

  1. Optional并不能解决NullPointerException问题,但是它提供了一种机制,这种机制可以让方法的调用者,或者Optional变量的使用这非常明确的知道这个变量中有可能不存在任何值 。这样就会强迫调用这去考虑,如果没有值自己应该怎么去处理 。
  2. Optional另外的一个好处就是它本身是支持流式编程 。

【Java中使用Optional有什么好处】


    推荐阅读