超大型网站建设,购物网站开发历史,国家批准的现货交易所,网站建设与维护 课件之前 #xff0c;我写过Java 8中引入的Optional类#xff0c;该类用于对可能不存在的值进行建模并减少可能引发NullPointerException的位置的数量。 Java 9向Optional添加了三个新方法#xff1a; 1. ifPresentOrElse 新ifPresentOrElse方法允许你执行一个动作#xff0c… 之前 我写过Java 8中引入的Optional类该类用于对可能不存在的值进行建模并减少可能引发NullPointerException的位置的数量。 Java 9向Optional添加了三个新方法 1. ifPresentOrElse 新ifPresentOrElse方法允许你执行一个动作如果Optional存在如果不同的操作Optional是不存在。 例如 lookup(userId).ifPresentOrElse(this::displayUserDetails,this::displayError)2.流 新的stream方法使将Optional对象流转换为其中存在的值流变得更加容易。 以前在Java 8中您需要两个步骤来实现这一目标。 首先您将过滤掉空的Optional 然后将其余部分拆箱以获取它们的值。 如下所示 // In Java 8:
Stream.of(alice, bob, charles).map(UserDirectory::lookup).filter(Optional::isPresent).map(Optional::get).collect(toList()); 在Java 9中使用stream方法使代码变得更简单 // In Java 9:
Stream.of(alice, bob, charles).map(UserDirectory::lookup).flatMap(Optional::stream).collect(toList());3.或 or方法与orElseGet方法有些相似但是返回Optional对象而不是值。 如果存在值则返回现有的Optional 。 如果该值不存在则返回提供功能产生的Optional 。 例如 lookup(userId).or(() - lookupInAnotherDatabase(userId));翻译自: https://www.javacodegeeks.com/2017/12/java-9-enhancements-optional.html