Java8中的Optional类学习笔记

来源:互联网 发布:淘宝一元拍卖 编辑:程序博客网 时间:2024/05/17 02:42

Java8中加入的Optional类的主要作用是,为了让我们在编程中尽量去规避空指针异常。
我仅仅是为了让自己对学习Optional类的记忆更加深刻而写这边博客,其实它很简单,可工作中还没用到Java8,所以更要记录一下了。

1、5个初始化方法

1):Optional(),构造方法,构造一个value为null的实例

2):empty(), static方法,返回一个empty实例

3):Optional(T value),构造方法,不能传入null,否则抛出空指针异常

4):of(T value),static方法,返回一个实例,调用了Optional(T value)这个构造方法

5):ofNullable(T value),static方法,如果value为null,则返回empty,如果不为空则返回一个有值得实例

2、T get(),获得value的值

3、boolean isPresent(),判断value是否为null,该方法应少使用,因为它跟我们用if去判断是否为null是一样的,意义并不大

4、void ifPresent(Consumer<? super T> consumer),如果value不为null,则进一步处理

5、Optional<T> filter(Predicate<? super T> predicate),如果value为null,则返回当前实例,如果不为空,则运行predicate的方法进行匹配,匹配结    果为true,返回当前实例,为false,返回empty

6、Optional<U> map(Function<? super T, ? extends U> mapper),如果value为null,则返回empty,如果不为null,调用mapper的方法处理之  后返回结果,结果如果为null,则返回empty

7、Optional<U> flatMap(Function<? super T, Optional<U>> mapper),该方法跟6的不同之处在于,调用mapper 的方法之后,如果返回值为null,则抛出空指针异常

8、T orElse(T other),如果value为null,则返回other,不为null则返回value

9、T orElseGet(Supplier<? extends T> other),如果value为null,则返回other的get方法的结果,不为null,则返回value

10、<X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X,如果value不为null,则返回value,如果为null,则抛出指定的异常


0 0
原创粉丝点击