Java ifPresent
方法是 Java 8
新添加的一個方法,用於檢查一個 Optional 對象是否包含了非 null
的值。在進行一些操作之前,你需要確定這個 Optional 對象確實包含值。如果包含值,就可以用 ifPresent
方法來對值進行一些操作。下面將詳細介紹這個方法的用法,以及適合的場景。
一、常見用途
一般來說,當使用 Optional 類型時,我們會編寫一些輔助類來進行檢查並進行操作。但是,如果嘗試直接在 Optional 對象上進行操作,可能會導致類型不匹配或者 NPE 等問題。
ifPresent()
方法就能夠解決這類問題。它能夠充分利用 lambda 表達式的特性,通過 Optional 對象進行操作。
二、代碼示例
下面是一個簡單的示例,用於展示 ifPresent()
方法的用法。
import java.util.Optional;
public class Main {
public static void main(String[] args) {
Optional<String> fullName = Optional.ofNullable(null);
System.out.println("Full Name is set? : "+fullName.isPresent());
System.out.println("Full Name: "+fullName.orElseGet(()-> "[none]"));
fullName.ifPresent(System.out::println);
}
}
運行結果如下:
Full Name is set? : false
Full Name: [none]
輸出結果中,我們可以看到 ifPresent()
只有當前 Optional 對象非 null
的時候才會進行操作。
三、ifPresent 方法的參數
ifPresent()
方法的參數是一個函數介面,這個函數最多接受一個參數,返回值類型是void。
如果調用 ifPresent()
方法時,Optional 對象包含非 null
的值,那麼這個函數介面中的方法就會被調用。具體來說,這個 函數介面 會將 Optional 對象中的值作為參數傳遞給這個函數。
如果 Optional 對象中的值是一個對象,而函數介面需要一個基本類型,那麼 Optional 對象自動的使用了裝箱機制,將其裝箱為一個對象。
四、小結
總之,ifPresent()
方法是 Java 中多重值作為 API 的一部分,有助於使代碼更加規範和易於維護。如果在開發過程中遇到 Optional 對象的操作問題,使用 ifPresent 可隨時判斷 Optional 對象是否有值,避免出現 NPE 異常。
然而,由於 Optional 沒有提供公共介面,如果對於 ifPresent()
方法並不熟悉,可能會給你帶來一些困惑。因此,在使用 Optional 相關 API 的過程中,一定要加強對這些函數的掌握,幫助你更好地了解代碼。
原創文章,作者:HTFC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/135883.html