Java8中的Optional类学习笔记

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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OptionalJava 8引入的一个用于解决空指针异常问题的容器。它可以包含一个非空的值,也可以表示为空。Optional的设计目的是为了避免在代码频繁使用null值,从而提高代码的可读性和健壮性。 使用Optional可以有效地处理可能为空的值,避免出现NullPointerException。它提供了一系列方法来判断Optional对象是否包含值,如果有值则可以通过get()方法获取该值,或者使用orElse()方法指定一个默认值。 下面是一个示例代码,演示了如何使用Optional: ```java Optional<String> optionalValue = Optional.of("Hello World"); if (optionalValue.isPresent()) { String value = optionalValue.get(); System.out.println(value); } else { System.out.println("Value is absent"); } String defaultValue = optionalValue.orElse("Default Value"); System.out.println(defaultValue); ``` 在上面的代码,我们首先使用`Optional.of()`方法创建了一个包含非空值的Optional对象。然后通过`isPresent()`方法判断Optional对象是否包含值,如果有值则通过`get()`方法获取该值并输出。如果Optional对象为空,则输出"Value is absent"。 接下来使用`orElse()`方法指定了一个默认值,并输出该默认值。如果Optional对象包含值,则输出原始值;如果Optional对象为空,则输出指定的默认值。 使用Optional可以有效地避免空指针异常,并提高代码的可读性和健壮性。它在编写Java代码时是一个非常有用的工具。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值