Java8 optional的使用

本文介绍了 Java8 中的 Optional 类,旨在解决 null 值带来的问题。Optional 是一个可以为 null 的容器对象,通过 isPresent 和 ifPresent 方法来判断值是否存在及对值进行操作。
摘要由CSDN通过智能技术生成

Optional类是Java8为了解决null值判断问题,使用Optional类可以避免显式的null值判断(null的防御性检查)

这是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。

代码示例

of 和 ofNullable

of方法通过工厂方法创建Optional类。需要注意的是,创建对象时传入的参数不能为null。如果传入参数为null,则抛出NullPointerException 。

ofNullable为指定的值创建一个Optional,如果指定的值为null,则返回一个空的Optional。

//调用工厂方法创建Optional实例
Optional<String> name = Optional.of("Yoda");
//传入参数为null,抛出NullPointerException.
Optional<String> someNull = Optional.of(null);
//下面创建了一个不包含任何值的Optional实例
Optional empty = Optional.ofNullable(null);
Optional<String> empty = Optional.empty();

isPresent和ifPresent

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

ifPresent如果Optional实例有值则为其调用consumer,否则不做处理

//isPresent方法用来检查Optional实例中是否包含值
if (name.isPresent()) {
  //在Optional实例内调用get()返回已存在的值
  System.out.println(name.get());//输出Yoda
}

//ifPresent方法接受lambda表达式作为参数。
//lambda表达式对Optional的值调用consumer进行处理。
        optional.ifPresent(s -> {
            s = s + "S";
            log.debug(s);
        });
        log.debug(optional.get());

参考资料:https://blog.csdn.net/L_Sail/article/details/78868673

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值