Optional 簡(jiǎn)介
optional 是一個(gè)容器對(duì)象,可以存儲(chǔ)對(duì)象、字符串、null等值。 提供了很多方法幫助我們將java中的對(duì)象等一些值存入其中,而且無(wú)需做顯式的空值校驗(yàn),用盡量少的代碼完成復(fù)雜的流程,減少拋出空指針異常,減少null的判斷,提高代碼可讀性等
提供了如下方法:
of()?方法,可以將值存入 Optional 容器中,如果存入的值是 null 則拋異常。
ofNullable()?方法,可以將值存入 Optional 容器中,即使值是 null 也不會(huì)拋異常。
get()?方法,可以獲取容器中的值,如果值為 null 則拋出異常。
getElse()?方法,可以獲取容器中的值,如果值為 null 則返回設(shè)置的默認(rèn)值。
isPresent()?方法,該方法可以判斷存入的值是否為空。
等等,更多方法可參考:
Oracle JDK API 參考文檔:https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html
菜鳥(niǎo)教程-Java 8 Optional 類(lèi):https://www.runoob.com/java/java8-optional-class.html

常用方法:
long tagBits = Optional.ofNullable(this.tagBits).orElse(0L);
public boolean isDelisted(){
? ? return Optional.ofNullable(tagBits)
? ? ? ? ? ? .map(tagBits ->BitUtils.isTrue(tagBits, AssetTagConstants.DELISTED))
? ? ? ? ? ? .orElse(false);
}