Java的Optional類有以下功能:
提供了一種容器類型,可以用來包裝可能為空的值。
可以通過靜態方法創建Optional對象,例如Optional.of(value)、Optional.ofNullable(value)。
可以使用isPresent()方法判斷Optional對象是否包含值,并使用get()方法獲取包裝的值。
可以使用orElse(value)方法指定默認值,在Optional對象為空時返回默認值。
可以使用orElseGet(Supplier<? extends T> supplier)方法指定一個Supplier接口的實現來提供默認值。
可以使用orElseThrow(Supplier<? extends X> exceptionSupplier)方法在Optional對象為空時拋出指定的異常。
可以使用ifPresent(Consumer<? super T> consumer)方法判斷Optional對象是否包含值,并在包含值時使用指定的Consumer接口的實現處理值。
可以使用filter(Predicate<? super T> predicate)方法對Optional對象的值進行過濾,并返回一個新的Optional對象。
可以使用map(Function<? super T, ? extends U> mapper)方法對Optional對象的值進行映射,并返回一個新的Optional對象。
可以使用flatMap(Function<? super T, Optional> mapper)方法對Optional對象的值進行映射,并返回一個新的Optional對象,如果映射結果為Optional.empty()則返回空的Optional對象。
可以使用orElseThrow()方法在Optional對象為空時拋出NoSuchElementException異常。
可以使用equals()方法判斷兩個Optional對象是否相等。
可以使用hashCode()方法獲取Optional對象的哈希碼。
可以使用toString()方法將Optional對象轉換為字符串表示。
通過使用Optional類,可以有效地處理可能為空的值,減少空指針異常的發生,并提高代碼的可讀性和健壯性。