Optional描述:

Optional主要是Java8提供的新特性,主要用处更好的处理空指针

主要用法:

构造方法:

private Optional():构建一个空的 Optional 实例。实例中的 value == null

private Optional(T var1):构建一个Optional 实例。实例中的 value == var1。var1为NULL会抛NPE


实例方法:

public static <T> Optional<T> empty():获取一个 Optional 空实例。

public static <T> Optional<T> of(T var0):获取一个 Optional 实例。var0为NULL会抛NPE。

public static <T> Optional<T> ofNullable(T var0):获取一个 Optional 实例。var0为 NULL 会返回一个 Optional 空实例。


获取实例:

public T get():value 为空抛NoSuchElementException。

public T orElse(T var1):value 不为 NULL 则返回 value ;为 NULL 返回 var1。

public T orElseGet(Supplier<? extends T> var1):value 不为 NULL 则返回 value ;为 NULL 执行 var1。

public <X extends Throwable> T orElseThrow(Supplier<? extends X> var1) throws X:value 不为 NULL 则返回 value ;为 NULL 执行 var1。


判断 Optional 是否存在:

public boolean isPresent():即返回 Optional 实例中的 value 是否为 NULL。

public void ifPresent(Consumer<? super T> var1): value 不为 NULL 则执行 var1。


判断是否相等:

public boolean equals(Object var1):感觉不出来和其他 equals 有什么区别。唯一的区别就是如果 optional 实例中的 value 为 NULL 也不会有异常,而是会正常进行比较。


Lambda 表达式的操作:

public Optional<T> filter(Predicate<? super T> var1)

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

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

文章作者: 烦恼的夏洛克
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 烦恼的夏洛克
Java
喜欢就支持一下吧