国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

JAVA Optional類用法分享

2024-07-13 10:14:30
字體:
供稿:網(wǎng)友

Optional在JAVA中被定義為一個容器類,更確切的說只存一個元素的容器。

container object which may or may not contain a non-null value.

Optional類結(jié)構(gòu) Optional屬性

Optional類中包含兩個屬性:

類屬性:EMPTY 對象屬性:value

EMPTY屬性用來存放一個value為null的Optional對象。
value屬性用來存放非null對象。

Optional方法

Optional的有兩個構(gòu)造方法,都被private修飾。

private Optional() {  this.value = null;}private Optional(T value) {  this.value = Objects.requireNonNull(value);}

 

無參構(gòu)造方法用來初始化EMPTY。有參構(gòu)造方法用來初始化非null對象。

因為構(gòu)造方法被修飾為私有的,Optional想要實例化對象只能通過類方法調(diào)用。Optional提供三個類方法。

empty:返回value為null的Optional對象 of:返回value非null的Optional對象 ofNullable:value的值根據(jù)參數(shù)是否為null返回對應(yīng)的Optional對象

public static<T> Optional<T> empty() {  Optional<T> t = (Optional<T>) EMPTY;  return t;}public static <T> Optional<T> of(T value) {  return new Optional<>(value);}public static <T> Optional<T> ofNullable(T value) {  return value == null ? empty() : of(value);}

 

實例方法介紹

 

方法 參數(shù)類型 返回類型 說明
get T value為null拋出NoSuchElementException異常
isPresent boolean value為null則返回false
ifPresent Consumer<? super T> void 如果Optional實例有值則為其調(diào)用consumer,否則不做處理
filter Predicate<? super T> Optional<T> 如果值存在并且滿足提供的謂詞,就返回包括該值的Optional對象;否則返回一個空的Optional對象
map Function<? super T, ? extends U> Optional<U> 如果值存在,就對該值執(zhí)行提供的mapping函數(shù)調(diào)用,返回Optional<U>對象
flatMap Function<? super T, Optional<U>> Optional<U> 如果值存在,就對該值執(zhí)行提供的mapping函數(shù)調(diào)用,返回非null Optional對象
orElse T T 如果有值則將其返回,否則返回一個默認(rèn)值
orElseGet Supplier<? extends T> T 如果有值則將其返回,否則返回一個由指定的Supplier接口生成的值
orElseThrow Supplier<? extends X> <X extends Throwable> 如果有值則將其返回,否則拋出一個由指定的Supplier接口生成的異常


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 曲靖市| 贡山| 常宁市| 荔波县| 灵璧县| 嘉定区| 五常市| 华坪县| 河源市| 桐乡市| 宜兰市| 杭州市| 五指山市| 肃宁县| 商洛市| 庆阳市| 卓尼县| 吴堡县| 枝江市| 河池市| 封丘县| 无锡市| 伽师县| 镇巴县| 乐清市| 淅川县| 玉树县| 扬州市| 揭阳市| 洛南县| 华蓥市| 牟定县| 会宁县| 阿城市| 巴林右旗| 崇明县| 益阳市| 澎湖县| 桐乡市| 五华县| 林州市|