溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JDK8新特性之判空遍歷寫法

發(fā)布時(shí)間:2020-09-25 09:17:25 來源:腳本之家 閱讀:371 作者:sunnyzyq 欄目:編程語言

在工作中,經(jīng)常會(huì)處理各種變量,但往往會(huì)在使用變量的時(shí)候,要進(jìn)行空判斷,不然要報(bào)錯(cuò)。

Java 8 提供了判空寫法:

Optional.ofNullable(變量).orElse(默認(rèn)值);

例1:求字符串 s 的長度( 為空的時(shí)候返回0 )。

常規(guī)寫法:

String s = getKey();
if (s == null) {
 return 0; 
} else {
 return s.length();
}

Java 8 寫法:

String s = getKey();
return Optional.ofNullable(s).orElse("").length();

例2:循環(huán)遍歷集合

常規(guī)寫法:

List<String> list = getList();
if (list != null) {
 for(String s: list){
   System.out.println(s);
 }
}

Java 8 寫法:

List<String> list = getList();
Optional.ofNullable(list).orElse(new ArrayList<>()).forEach(o -> {
   System.out.println(o);
});

PS:使用Optional避免null導(dǎo)致的NullPointerException

空指針異常是導(dǎo)致Java應(yīng)用程序失敗的最常見原因。以前,為了解決空指針異常,Google公司著名的Guava項(xiàng)目引入了Optional類,Guava通過使用檢查空值的方式來防止代碼污染,它鼓勵(lì)程序員寫更干凈的代碼。受到Google Guava的啟發(fā),Optional類已經(jīng)成為Java 8類庫的一部分。Optional實(shí)際上是個(gè)容器:它可以保存類型T的值,或者僅僅保存null。Optional提供很多有用的方法,這樣我們就不用顯式進(jìn)行空值檢測。

Optional.of()或者Optional.ofNullable():創(chuàng)建Optional對象,差別在于of不允許參數(shù)是null,而ofNullable則無限制。

// 參數(shù)不能是null
Optional<Integer> optional1 = Optional.of(1);
 
// 參數(shù)可以是null
Optional<Integer> optional2 = Optional.ofNullable(null);
 
// 參數(shù)可以是非null
Optional<Integer> optional3 = Optional.ofNullable(2);

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI