摘要:概述簡介類是一個容器類,代表一個值存在或不存在,原來用表示一個值不存在,現在可以更好的表達這個概念,并且可以避免空指針異常。否則返回字符串長度為與類似,要求返回值必須是字符串長度為本文首發于凌風博客新特性之類作者凌風
1. 概述 1.1 簡介
Optional
Optional 容器類的常用方法
of(T t) 創建一個 Optional 實例
get() 獲取容器中的對象
empty() 創建一個空的 Optional 實例
ofNullable(T t) 若 t 不為 null,創建 Optional 實例,否則創建空實例
isPresent() 判斷是否包含值
orElse(T t) 如果調用對象包含值,返回該值,否則返回 t
orElseGet(Supplier s) 如果調用對象包含值,返回該值,否則返回 s 獲取的值
map(Function f) 如果有值對其處理,并返回處理后的 Optional。否則返回 Optional.empty()
flatMap(Function mapper) 與 map 類似,要求返回值必須是 Optional
2. Optional 容器類的常用方法 2.1 of(T t) 創建一個 Optional 實例@Test public void t1() { Optional2.2 empty() 創建一個空的 Optional 實例op = Optional.of(new String("ling")); String emp = op.get(); System.out.println(emp); }
@Test public void t2() { Optionalop = Optional.empty(); System.out.println(op.get()); }
當創建一個空的 Optional 容器時,再使用 get() 方法會報獲取不到值的異常 java.util.NoSuchElementException: No value present
2.3 ofNullable(T t) 若 t 不為 null,創建 Optional 實例,否則創建空實例@Test public void t3() { Optionalop = Optional.ofNullable(null); System.out.println(op.get()); }
ofNullable 在使用 null 創建容器的時候,同樣會拋出 java.util.NoSuchElementException: No value present 異常
2.4 isPresent() 判斷是否包含值@Test public void t4() { Optional2.5 orElse(T t) 如果調用對象包含值,返回該值,否則返回 top = Optional.ofNullable(new String("ling")); // 有值就獲取,沒值就什么都不做 if (op.isPresent()) { System.out.println(op.get()); } }
@Test public void t5() { Optional2.6 orElseGet(Supplier s) 如果調用對象包含值,返回該值,否則返回 s 獲取的值op = Optional.ofNullable(null); String str = op.orElse("feng"); System.out.println(str); }
@Test public void t6() { Optional2.7 map(Function f) 如果有值對其處理,并返回處理后的 Optional。否則返回 Optional.empty()op = Optional.ofNullable(null); String str = op.orElseGet(() -> new String("feng")); System.out.println(str); }
@Test public void t8() { Optional2.8 flatMap(Function mapper) 與 map 類似,要求返回值必須是 Optionalop = Optional.ofNullable("lingfeng"); Optional len = op.map((s) -> s.length()); System.out.println("字符串長度為 : " + len.get()); }
@Test public void t9() { Optionalop = Optional.ofNullable("lingfeng"); Optional len = op.flatMap((s) -> Optional.of(s.length())); System.out.println("字符串長度為 : " + len.get()); }
本文首發于凌風博客:Java 8 新特性之Optional類
作者:凌風
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72781.html
摘要:上一篇小樂帶大家了解了新特性之,接下來將會繼續述說新特性之類是一個容器類,代表一個值存在或不存在,原來用表示一個值不存在,現在可以更好的表達這個概念。并且可以避免空指針異常。如果有值則將其返回,否則拋出。隱士地其中進行了判斷。 上一篇小樂帶大家了解了Java8新特性之Stream,接下來將會繼續述說Java新特性之Optional showImg(https://segmentfaul...
以下是Java技術棧微信公眾號發布的關于 Java 的技術干貨,從以下幾個方面匯總。 Java 基礎篇 Java 集合篇 Java 多線程篇 Java JVM篇 Java 進階篇 Java 新特性篇 Java 工具篇 Java 書籍篇 Java基礎篇 8張圖帶你輕松溫習 Java 知識 Java父類強制轉換子類原則 一張圖搞清楚 Java 異常機制 通用唯一標識碼UUID的介紹及使用 字符串...
摘要:新特性總覽標簽本文主要介紹的新特性,包括表達式方法引用流默認方法組合式異步編程新的時間,等等各個方面。還有對應的和類型的函數連接字符串廣義的歸約匯總起始值,映射方法,二元結合二元結合。使用并行流時要注意避免共享可變狀態。 Java8新特性總覽 標簽: java [TOC] 本文主要介紹 Java 8 的新特性,包括 Lambda 表達式、方法引用、流(Stream API)、默認方...
摘要:簡而言之,提供了一種高效且易于使用的處理數據的方式。和以前的操作不同,操作還有兩個基礎的特征中間操作都會返回流對象本身。注意自己不會存儲元素不會改變源對象,相反,它們會返回一個持有結果的新操作時延遲執行的。為集合創建并行流。 1. 概述 1.1 簡介 Java 8 中有兩大最為重要的改革,第一個是 Lambda 表達式,另外一個則是 Stream API(java.util.strea...
摘要:于是抽時間看了看以后各個版本的特性,做了一個總結。年和公開版本發布,取名為。此后對應版本就是,。發布,是一個重大版本更新。在此之后,就是每六個月發布一次新版本。以上和參考資料聊了一些關于的歷史,下面我們看看各個版本有那些新特性。 【這是 ZY 第 11 篇原創技術文章】 某天在網上閑逛,突然看到有篇介紹 Java 11 新特性的文章,頓時心里一驚,畢竟我對于 Java 的版本認識...
閱讀 1628·2021-10-12 10:11
閱讀 3748·2021-09-03 10:35
閱讀 1439·2019-08-30 15:55
閱讀 2122·2019-08-30 15:54
閱讀 993·2019-08-30 13:07
閱讀 1004·2019-08-30 11:09
閱讀 569·2019-08-29 13:21
閱讀 2645·2019-08-29 11:32