java 8 java demo_java8之OptionalDemo

本文介绍了 Java 8 中引入的 Optional 类,它用于更好地处理可能为空的值,避免空指针异常。通过使用 Optional,可以更加优雅地处理 null 值,并提供了多种方法如 map、flatMap 和 filter 等,这些方法类似于 Stream API。文章还展示了如何创建 Optional 对象及如何使用其方法来操作数据。
摘要由CSDN通过智能技术生成

//null引用在历史上被引入到程序设计语言中,目的是为了表示变量值的缺失。//Java 8中引入了一个新的类java.util.Optional,对存在或缺失的变量值进行建模。//你可以使用静态工厂方法Optional.empty、Optional.of以及Optional.ofNullable创建Optional对象。//Optional类支持多种方法,比如map、flatMap、filter,它们在概念上与Stream类中对应的方法十分相似。//使用Optional会迫使你更积极地解引用Optional对象,以应对变量值缺失的问题,最终,你能更有效地防止代码中出现不期而至的空指针异常。//使用Optional能帮助你设计更好的API,用户只需要阅读方法签名,就能了解该方法是 否接受一个Optional类型的值。//empty 返回一个空的Optional 实例//filter 如果值存在并且满足提供的谓词,就返回包含该值的Optional 对象;否则返回一个空的Optional 对象//flatMap 如果值存在,就对该值执行提供的mapping 函数调用,返回一个Optional 类型的值,否则就返回一个空的Optional 对象//get 如果该值存在,将该值用Optional 封装返回,否则抛出一个NoSuchElementException 异常//ifPresent 如果值存在,就执行使用该值的方法调用,否则什么也不做//isPresent 如果值存在就返回true,否则返回false//map 如果值存在,就对该值执行提供的mapping 函数调用//of 将指定值用Optional 封装之后返回,如果该值为null,则抛出一个NullPointerException异常//ofNullable 将指定值用Optional 封装之后返回,如果该值为null,则返回一个空的Optional 对象//orElse 如果有值则将其返回,否则返回一个默认值//orElseGet 如果有值则将其返回,否则返回一个由指定的Supplier 接口生成的值//orElseThrow 如果有值则将其返回,否则抛出一个由指定的Supplier 接口生成的异常//1、创建Optional对象//1.1、使用静态工厂方法Optional.empty,创建一个空的Optional对象

Optional optInteger =Optional.empty();//1.2、使用静态工厂方法Optional.of,依据一个非空值创建一个Optional对象,如果值为null会立即抛出一个NullPointerException

optInteger = Optional.of(11);//1.3、使用静态工厂方法Optional.ofNullable,你可以创建一个允许null值的Optional对象

optInteger = Optional.ofNullable(null);//2、使用map从Optional 对象中提取和转换值//optInteger = Optional.of(11);

System.out.println(optInteger.map(Integer::intValue).orElse(1));

Optional person =Optional.empty();

System.out.println(person.flatMap(Person::getCar));

person.ifPresent((p)->{

System.out.println(p.getCar());

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值