Optional 简介
optional 是一个容器对象,可以存储对象、字符串、null等值。 提供了很多方法帮助我们将java中的对象等一些值存入其中,而且无需做显式的空值校验,用尽量少的代码完成复杂的流程,减少抛出空指针异常,减少null的判断,提高代码可读性等
提供了如下方法:
of() 方法,可以将值存入 Optional 容器中,如果存入的值是 null 则抛异常。
ofNullable() 方法,可以将值存入 Optional 容器中,即使值是 null 也不会抛异常。
get() 方法,可以获取容器中的值,如果值为 null 则抛出异常。
getElse() 方法,可以获取容器中的值,如果值为 null 则返回设置的默认值。
isPresent() 方法,该方法可以判断存入的值是否为空。
等等,更多方法可参考:
Oracle JDK API 参考文档:https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html
菜鸟教程-Java 8 Optional 类:https://www.runoob.com/java/java8-optional-class.html

图解optional的存取过程
常用方法:
long tagBits = Optional.ofNullable(this.tagBits).orElse(0L);
public boolean isDelisted(){
return Optional.ofNullable(tagBits)
.map(tagBits ->BitUtils.isTrue(tagBits, AssetTagConstants.DELISTED))
.orElse(false);
}