<返回更多

Java中使用Optional有什么好处

2019-08-19    
加入收藏

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另外的一个好处就是它本身是支持流式编程。
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>