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