- java.lang.Object
-
- java.util.OptionalLong
-
public final class OptionalLong extends Object
一个可能含有也可能不包含long值的容器对象。 如果存在值,isPresent()返回true和getAsLong()返回值。提供依赖于包含值的存在或不存在的其他方法,例如
orElse()(如果没有值,则返回默认值)和ifPresent()(如果值存在则执行操作)。这是一个value-based课; 在
OptionalLong实例上使用身份敏感操作(包括引用等式(==),身份哈希码或同步)可能会有不可预测的结果,应该避免。- API Note:
-
OptionalLong主要用作方法返回类型,其中明确需要表示“无结果”。 类型为OptionalLong变量本身不应该是null; 它应该总是指向一个OptionalLong实例。 - 从以下版本开始:
- 1.8
-
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 static OptionalLongempty()返回一个空的OptionalLong实例。booleanequals(Object obj)指示某个其他对象是否等于此OptionalLong。longgetAsLong()如果值存在,则返回值,否则抛出NoSuchElementException。inthashCode()返回值的哈希码,如果存在,否则为0(零),如果没有值。voidifPresent(LongConsumer action)如果存在值,则使用该值执行给定的操作,否则不执行任何操作。voidifPresentOrElse(LongConsumer action, Runnable emptyAction)如果存在值,则使用该值执行给定的操作,否则执行给定的基于空的操作。booleanisPresent()如果存在值,则返回true,否则为false。static OptionalLongof(long value)返回描述给定值的OptionalLong。longorElse(long other)如果存在值,则返回值,否则返回other。longorElseGet(LongSupplier supplier)如果存在值,则返回值,否则返回由供应函数产生的结果。<X extends Throwable>
longorElseThrow(Supplier<? extends X> exceptionSupplier)如果存在值,则返回值,否则将抛出由异常提供函数产生的异常。LongStreamstream()如果存在值,则返回仅包含该值的顺序LongStream,否则返回空LongStream。StringtoString()返回适用于调试的OptionalLong的非空字符串表示形式。
-
-
-
方法详细信息
-
empty
public static OptionalLong empty()
返回一个空的OptionalLong实例。 这个OptionalLong没有值。- API Note:
-
虽然它可能是很有诱惑力的话,避免测试如果一个对象是通过比较空
==对抗返回实例OptionalLong.empty()。 不能保证是单身人士。 相反,请使用isPresent()。 - 结果
-
一个空的
OptionalLong。
-
of
public static OptionalLong of(long value)
返回描述给定值的OptionalLong。- 参数
-
value- 要描述的值 - 结果
-
一个
OptionalLong的价值存在
-
getAsLong
public long getAsLong()
如果值存在,则返回值,否则抛出NoSuchElementException。- API Note:
-
方法
orElse和orElseGet通常优于该方法,因为如果该值不存在则返回替代值,而不是抛出异常。 - 结果
-
该值由此描述
OptionalLong - 异常
-
NoSuchElementException- 如果没有值 - 另请参见:
-
isPresent()
-
isPresent
public boolean isPresent()
如果值存在,则返回true,否则为false。- 结果
-
true如果一个值存在,否则false
-
ifPresent
public void ifPresent(LongConsumer action)
如果存在值,则使用该值执行给定的操作,否则不执行任何操作。- 参数
-
action- 要执行的操作,如果值存在 - 异常
-
NullPointerException- 如果存在值且给定的操作是null
-
ifPresentOrElse
public void ifPresentOrElse(LongConsumer action, Runnable emptyAction)
如果存在值,则使用该值执行给定的操作,否则执行给定的基于空的操作。- 参数
-
action- 要执行的操作,如果存在值 -
emptyAction- 如果没有值,emptyAction执行的基于空的操作 - 异常
-
NullPointerException- 如果存在值,给定操作是null,或者不存在值,并且给定的基于空的操作是null。 - 从以下版本开始:
- 9
-
stream
public LongStream stream()
如果存在值,则返回仅包含该值的顺序LongStream,否则返回空LongStream。- API Note:
-
该方法可用于将
Stream的可选长LongStream为现在的LongStream为LongStream:Stream<OptionalLong> os = .. LongStream s = os.flatMapToLong(OptionalLong::stream) - 结果
-
可选值为
LongStream - 从以下版本开始:
- 9
-
orElse
public long orElse(long other)
如果存在值,则返回值,否则返回other。- 参数
-
other- 如果没有值,则返回的值 - 结果
-
该值,如果存在,否则为
other
-
orElseGet
public long orElseGet(LongSupplier supplier)
如果存在值,则返回值,否则返回由供应函数产生的结果。- 参数
-
supplier- 产生要返回的值的供应函数 - 结果
- 该值(如果存在),否则由供应功能产生的结果
- 异常
-
NullPointerException- 如果没有值,并且提供功能是null
-
orElseThrow
public <X extends Throwable> long orElseThrow(Supplier<? extends X> exceptionSupplier) throws X extends Throwable
如果存在值,则返回值,否则将抛出由异常提供函数产生的异常。- API Note:
-
可以使用具有空参数列表的异常构造函数的方法引用作为供应商。
例如,
IllegalStateException::new - 参数类型
-
X- 要抛出的异常的类型 - 参数
-
exceptionSupplier- 产生要抛出异常的供应函数 - 结果
- 价值,如果存在
- 异常
-
X- 如果没有值 -
NullPointerException- 如果没有值,异常提供功能是null -
X extends Throwable
-
equals
public boolean equals(Object obj)
指示某个其他对象是否等于此OptionalLong。 另一个对象被认为是相等的:-
OptionalLong - 或者;
- 当前值通过
==“相等”。
- 重写:
-
equals在Object - 参数
-
obj- 要进行相等测试的对象 - 结果
-
true如果另一个对象是“等于”这个对象否则false - 另请参见:
-
Object.hashCode(),HashMap
-
-
hashCode
public int hashCode()
返回值的哈希码(如果存在),否则如果没有值,则0(零)。- 重写:
-
hashCode在Object - 结果
-
当前值的哈希码值,如果没有值,则为
0 - 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
-