W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
java.lang.Object
|---java.util.Optional<T&
public final class Optional<T>
extends Object
一個容器對象,可能包含也可能不包含非空值。 如果存在值,isPresent() 將返回 true,而 get() 將返回該值。
提供了依賴于包含值是否存在的其他方法,例如 orElse() (如果值不存在則返回默認值)和 ifPresent() (如果值存在則執(zhí)行代碼塊)。
這是一個基于值的類; 在 Optional 的實例上使用身份敏感操作(包括引用相等 (==)、身份哈希碼或同步)可能會產(chǎn)生不可預知的結果,應該避免。
修飾符和類型 | 方法 | 描述 |
---|---|---|
static <T> Optional<T> | empty() | 返回一個空的可選實例。 |
boolean | equals(Object obj) | 指示某個其他對象是否“equal”此 Optional。 |
OptionalT | filter(Predicate<? super T> predicate) | 如果存在一個值,并且該值與給定的謂詞匹配,則返回一個描述該值的 Optional,否則返回一個空的 Optional。 |
<U> Optional<U> | flatMap(Function<? super T,Optional<U>> mapper) | 如果存在值,則將提供的 Optional-bearing 映射函數(shù)應用于它,返回該結果,否則返回空 Optional。 |
T | get() | 如果此 Optional 中存在值,則返回該值,否則拋出 NoSuchElementException。 |
int | hashCode() | 返回當前值的哈希碼值(如果有);如果不存在值,則返回 0(zero)。 |
void | ifPresent(Consumer<? super T> consumer) | 如果存在值,則使用該值調(diào)用指定的使用者,否則不執(zhí)行任何操作。 |
boolean | isPresent() | 如果存在值,則返回 true,否則返回 false。 |
<U> Optional<U> | map(Function<? super T,? extends U> mapper) | 如果存在值,則對其應用提供的映射函數(shù),如果結果為非 null,則返回描述結果的 Optional。 |
static <T> Optional<T> | of(T value) | 返回具有指定當前非空值的 Optional。 |
static <T> Optional<T> | ofNullable(T value) | 返回一個描述指定值的 Optional,如果非 null,否則返回一個空 Optional。 |
T | orElse(T other) | 如果存在則返回值,否則返回其他值。 |
T | orElseGet(Supplier<? extends T> other) | 如果存在則返回該值,否則調(diào)用其他值并返回該調(diào)用的結果。 |
<X extends Throwable>T | orElseThrow(Supplier<? extends X> exceptionSupplier) | 如果存在,則返回包含的值,否則拋出由提供的供應商創(chuàng)建的異常。 |
String | toString() | 返回此 Optional 適合調(diào)試的非空字符串表示形式。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
public static <T> Optional<T> empty()
返回一個空的可選實例。 此 Optional 沒有值。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 不存在值的類型 |
返回:
一個空的 Optional
public static <T> Optional<T> of(T value)
返回具有指定當前非空值的 Optional。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 值的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
value | 要存在的值,它必須是非空的 |
返回:
一個含有該值的 Optional
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 value 為空 |
public static <T> Optional<T> ofNullable(T value)
返回一個描述指定值的 Optional,如果非 null,否則返回一個空 Optional。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
T | 值的類別 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
value | 要描述的可能為空的值 |
返回:
如果指定值為非空,則為具有當前值的 Optional,否則為空 Optional
public T get()
如果此 Optional 中存在值,則返回該值,否則拋出 NoSuchElementException。
返回:
此 Optional 持有的非空值
Throws:
Throw名稱 | Throw描述 |
---|---|
NoSuchElementException | 如果不存在 value |
public boolean isPresent()
如果存在值,則返回 true,否則返回 false。
返回:
如果存在值,則為 true,否則為 false
public void ifPresent(Consumer<? super T> consumer)
如果存在值,則使用該值調(diào)用指定的使用者,否則不執(zhí)行任何操作。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
consumer | 如果存在值則執(zhí)行塊 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果值存在且 consumer 為空 |
public OptionalT filter(Predicate<? super T> predicate)
如果存在一個值,并且該值與給定的謂詞匹配,則返回一個描述該值的 Optional,否則返回一個空的 Optional。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
predicate | 應用于值的謂詞(如果存在) |
返回:
如果存在值并且該值與給定謂詞匹配,則描述此 Optional 的值的 Optional,否則為空 Optional
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 predicate 為空 |
public <U> Optional<U> map(Function<? super T,? extends U> mapper)
如果存在值,則對其應用提供的映射函數(shù),如果結果為非 null,則返回描述結果的 Optional。 否則返回一個空的 Optional。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
U | 映射函數(shù)結果的類型 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
mapper | 應用于值的映射函數(shù)(如果存在) |
返回:
Optional 描述將映射函數(shù)應用于此 Optional 的值的結果,如果存在值,否則為空 Optional
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果映射函數(shù)為空 |
public <U> Optional<U> flatMap(Function<? super T,Optional<U>> mapper)
如果存在值,則將提供的 Optional-bearing 映射函數(shù)應用于它,返回該結果,否則返回空 Optional。 此方法類似于 map(java.util.function.Function),但提供的映射器是其結果已經(jīng)是 Optional 的映射器,如果被調(diào)用,flatMap 不會用額外的 Optional 包裝它。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
U | Optional 返回的類型參數(shù) |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
mapper | 應用于值的映射函數(shù),如果存在映射函數(shù) |
返回:
如果存在值,則將 Optional-bearing 映射函數(shù)應用于此 Optional 的值的結果,否則為空 Optional
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果映射函數(shù)為 null 或返回 null 結果 |
public T orElse(T other)
如果存在則返回值,否則返回其他值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
other | 如果不存在值,則要返回的值,可以為 null |
返回:
該值(如果存在),否則為其他
public T orElseGet(Supplier<? extends T> other)
如果存在則返回該值,否則調(diào)用其他值并返回該調(diào)用的結果。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
other | 如果不存在值,則返回其結果的供應商 |
返回:
該值如果存在,否則為 other.get() 的結果
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 value 不存在并且 other 為 null |
public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X extends Throwable
如果存在,則返回包含的值,否則拋出由提供的供應商創(chuàng)建的異常。
類型參數(shù):
類型參數(shù)名稱 | 類型參數(shù)描述 |
---|---|
X | 要拋出的異常的類型 |
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
exceptionSupplier | 將返回要拋出的異常的供應商 |
返回:
現(xiàn)在的值
Throws:
Throw名稱 | Throw描述 |
---|---|
X | 如果不存在值 |
NullPointerException | 如果不存在任何值且 exceptionSupplier 為 null |
X extends Throwable |
public boolean equals(Object obj)
指示某個其他對象是否“等于”此 Optional。 如果滿足以下條件,則認為另一個對象相等:
覆蓋:
類 Object 中的等于
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
obj | 要測試是否相等的對象 |
返回:
{code true} 如果另一個對象“等于”這個對象,否則為 false
public int hashCode()
返回當前值的哈希碼值(如果有);如果不存在值,則返回 0(零)。
覆蓋:
類 Object 中的 hashCode
返回:
當前值的哈希碼值,如果不存在值,則為 0
public String toString()
返回此 Optional 適合調(diào)試的非空字符串表示形式。 確切的表示格式未指定,并且可能因?qū)崿F(xiàn)和版本而異。
覆蓋:
類 Object 中的 toString
返回:
此實例的字符串表示形式
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: