一、ofNullable簡介
Java 8中的Optional類是一個可選容器對象。它可以包含某個值或者為空。Optional類的一個重要的靜態方法是ofNullable,它允許我們創建一個Optional對象,該對象可以包含一個非空值,也可以為空。
二、ofNullable方法有什麼作用
ofNullable方法可以根據傳遞的值創建一個Optional對象,如果傳遞的值為null,則創建一個空的Optional對象。這樣,我們可以避免NullPointerException異常,可以更加優雅地處理空值的情況。
三、ofNullable和of的區別
of方法只能接受非空的值,如果傳遞的是null,則會拋出NullPointerException異常。而ofNullable方法可以接受非空的值,也可以接受null值,如果傳遞的是null,則會創建一個空的Optional對象。
// of方法只能接受非空的值,如果傳遞的是null,則會拋出NullPointerException異常 String str = null; Optional opt1 = Optional.of(str); // 拋出NullPointerException異常 // ofNullable方法可以接受非空的值,也可以接受null值 String str = null; Optional opt2 = Optional.ofNullable(str); // 創建一個空的Optional對象
四、ofnullable orelse方法
ofNullable方法創建的Optional對象可能為空,我們可以使用orElse方法來獲取Optional對象中的值或者默認值。
// 使用orElse方法來獲取Optional對象中的值或者默認值 String str1 = null; String str2 = "default value"; String result1 = Optional.ofNullable(str1).orElse(str2); // 使用默認值"default value" String result2 = Optional.ofNullable("not null").orElse(str2); // 獲取"not null"值
五、ofnullable orelseget方法
orElseGet方法與orElse方法類似,都是在Optional對象為null的情況下提供默認值,但是orElseGet方法接受一個Supplier函數,該函數只有在Optional對象為null的情況下才會被調用,而orElse方法無論Optional對象是否為null,都會被調用。
// orElse方法提供默認值 String str1 = null; String str2 = "default value"; String result1 = Optional.ofNullable(str1).orElse(str2); // 使用默認值"default value" // orElseGet方法提供默認值,只有在Optional對象為null的情況下才會被調用 String str1 = null; String result2 = Optional.ofNullable(str1).orElseGet(() -> "default value"); // 使用默認值"default value"
六、ofNullable().map方法
如果Optional對象中的值不為空,則可以使用map方法對值進行轉換,轉換結果仍然是一個Optional對象,如果值為空,則不執行map方法的函數,直接返回一個空的Optional對象。
// 對Optional對象中的字符串進行轉換 Optional opt1 = Optional.ofNullable("123"); Optional result1 = opt1.map(s -> Integer.parseInt(s)); // 使用map方法進行數值轉換 Optional opt2 = Optional.ofNullable(null); Optional result2 = opt2.map(s -> Integer.parseInt(s)); // 直接返回空的Optional對象
七、ofnullable ifpresent方法
如果Optional對象中的值不為空,則可以使用ifPresent方法來調用一個函數式接口,該函數式接口將會對值進行操作。如果值為空,則不執行函數式接口。
// 調用ifPresent方法對Optional對象中的字符串進行操作 Optional opt1 = Optional.ofNullable("123"); opt1.ifPresent(s -> System.out.println(Integer.parseInt(s))); // 輸出數值123 Optional opt2 = Optional.ofNullable(null); opt2.ifPresent(s -> System.out.println(Integer.parseInt(s))); // 不執行函數式接口
八、總結
ofNullable方法是Java 8中Optional類中非常重要的一個方法。它能夠讓我們更加優雅地處理空值的情況,避免NullPointerException異常的出現。除此之外,Optional類還提供了很多的方法,如orElse、map、ifPresent等,可以幫助我們更加靈活地對Optional對象進行操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/159368.html