codecamp

鸿蒙OS Optional

Optional

java.lang.Object

|---java.util.Optional<T&

public final class Optional<T>
extends Object

一个容器对象,可能包含也可能不包含非空值。 如果存在值,isPresent() 将返回 true,而 get() 将返回该值。

提供了依赖于包含值是否存在的其他方法,例如 orElse() (如果值不存在则返回默认值)和 ifPresent() (如果值存在则执行代码块)。

这是一个基于值的类; 在 Optional 的实例上使用身份敏感操作(包括引用相等 (==)、身份哈希码或同步)可能会产生不可预知的结果,应该避免。

方法总结

修饰符和类型 方法 描述
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 映射函数应用于它,返回该结果,否则返回空 Optional。
T get() 如果此 Optional 中存在值,则返回该值,否则抛出 NoSuchElementException。
int hashCode() 返回当前值的哈希码值(如果有);如果不存在值,则返回 0(zero)。
void ifPresent(Consumer<? super T> consumer) 如果存在值,则使用该值调用指定的使用者,否则不执行任何操作。
boolean isPresent() 如果存在值,则返回 true,否则返回 false。
<U> Optional<U> map(Function<? super T,? extends U> mapper) 如果存在值,则对其应用提供的映射函数,如果结果为非 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) 如果存在则返回该值,否则调用其他值并返回该调用的结果。
<X extends Throwable>T orElseThrow(Supplier<? extends X> exceptionSupplier) 如果存在,则返回包含的值,否则抛出由提供的供应商创建的异常。
String toString() 返回此 Optional 适合调试的非空字符串表示形式。
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

方法详情

empty

public static <T> Optional<T> empty()

返回一个空的可选实例。 此 Optional 没有值。

类型参数:

类型参数名称 类型参数描述
T 不存在值的类型

返回:

一个空的 Optional

of

public static <T> Optional<T> of(T value)

返回具有指定当前非空值的 Optional。

类型参数:

类型参数名称 类型参数描述
T 值的类别

参数:

参数名称 参数描述
value 要存在的值,它必须是非空的

返回:

一个含有该值的 Optional

Throws:

Throw名称 Throw描述
NullPointerException 如果 value 为空

ofNullable

public static <T> Optional<T> ofNullable(T value)

返回一个描述指定值的 Optional,如果非 null,否则返回一个空 Optional。

类型参数:

类型参数名称 类型参数描述
T 值的类别

参数:

参数名称 参数描述
value 要描述的可能为空的值

返回:

如果指定值为非空,则为具有当前值的 Optional,否则为空 Optional

get

public T get()

如果此 Optional 中存在值,则返回该值,否则抛出 NoSuchElementException。

返回:

此 Optional 持有的非空值

Throws:

Throw名称 Throw描述
NoSuchElementException 如果不存在 value

isPresent

public boolean isPresent()

如果存在值,则返回 true,否则返回 false。

返回:

如果存在值,则为 true,否则为 false

ifPresent

public void ifPresent(Consumer<? super T> consumer)

如果存在值,则使用该值调用指定的使用者,否则不执行任何操作。

参数:

参数名称 参数描述
consumer 如果存在值则执行块

Throws:

Throw名称 Throw描述
NullPointerException 如果值存在且 consumer 为空

filter

public OptionalT filter(Predicate<? super T> predicate)

如果存在一个值,并且该值与给定的谓词匹配,则返回一个描述该值的 Optional,否则返回一个空的 Optional。

参数:

参数名称 参数描述
predicate 应用于值的谓词(如果存在)

返回:

如果存在值并且该值与给定谓词匹配,则描述此 Optional 的值的 Optional,否则为空 Optional

Throws:

Throw名称 Throw描述
NullPointerException 如果 predicate 为空

map

public <U> Optional<U> map(Function<? super T,? extends U> mapper)

如果存在值,则对其应用提供的映射函数,如果结果为非 null,则返回描述结果的 Optional。 否则返回一个空的 Optional。

类型参数:

类型参数名称 类型参数描述
U 映射函数结果的类型

参数:

参数名称 参数描述
mapper 应用于值的映射函数(如果存在)

返回:

Optional 描述将映射函数应用于此 Optional 的值的结果,如果存在值,否则为空 Optional

Throws:

Throw名称 Throw描述
NullPointerException 如果映射函数为空

flatMap

public <U> Optional<U> flatMap(Function<? super T,Optional<U>> mapper)

如果存在值,则将提供的 Optional-bearing 映射函数应用于它,返回该结果,否则返回空 Optional。 此方法类似于 map(java.util.function.Function),但提供的映射器是其结果已经是 Optional 的映射器,如果被调用,flatMap 不会用额外的 Optional 包装它。

类型参数:

类型参数名称 类型参数描述
U Optional 返回的类型参数

参数:

参数名称 参数描述
mapper 应用于值的映射函数,如果存在映射函数

返回:

如果存在值,则将 Optional-bearing 映射函数应用于此 Optional 的值的结果,否则为空 Optional

Throws:

Throw名称 Throw描述
NullPointerException 如果映射函数为 null 或返回 null 结果

orElse

public T orElse(T other)

如果存在则返回值,否则返回其他值。

参数:

参数名称 参数描述
other 如果不存在值,则要返回的值,可以为 null

返回:

该值(如果存在),否则为其他

orElseGet

public T orElseGet(Supplier<? extends T> other)

如果存在则返回该值,否则调用其他值并返回该调用的结果。

参数:

参数名称 参数描述
other 如果不存在值,则返回其结果的供应商

返回:

该值如果存在,否则为 other.get() 的结果

Throws:

Throw名称 Throw描述
NullPointerException 如果 value 不存在并且 other 为 null

orElseThrow

public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X extends Throwable

如果存在,则返回包含的值,否则抛出由提供的供应商创建的异常。

类型参数:

类型参数名称 类型参数描述
X 要抛出的异常的类型

参数:

参数名称 参数描述
exceptionSupplier 将返回要抛出的异常的供应商

返回:

现在的值

Throws:

Throw名称 Throw描述
X 如果不存在值
NullPointerException 如果不存在任何值且 exceptionSupplier 为 null
X extends Throwable

equals

public boolean equals(Object obj)

指示某个其他对象是否“等于”此 Optional。 如果满足以下条件,则认为另一个对象相等:

  • 它也是一个可选的并且;
  • 两个实例都没有价值,或者;
  • 当前值通过 equals() 彼此“相等”。

覆盖:

类 Object 中的等于

参数:

参数名称 参数描述
obj 要测试是否相等的对象

返回:

{code true} 如果另一个对象“等于”这个对象,否则为 false

hashCode

public int hashCode()

返回当前值的哈希码值(如果有);如果不存在值,则返回 0(零)。

覆盖:

类 Object 中的 hashCode

返回:

当前值的哈希码值,如果不存在值,则为 0

toString

public String toString()

返回此 Optional 适合调试的非空字符串表示形式。 确切的表示格式未指定,并且可能因实现和版本而异。

覆盖:

类 Object 中的 toString

返回:

此实例的字符串表示形式

鸿蒙OS Observable
鸿蒙OS OptionalDouble
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }