乐字节Java8核心特性实战之六:Optional

本文详细介绍了Java8中的Optional类,它作为一个容器类,用于替代null表示值可能存在或不存在,有效防止空指针异常。文章通过示例代码展示了Optional的创建、逻辑判断、消除null检查、业务逻辑返回、值过滤以及在页面转发和动态SQL参数过滤中的应用,旨在提高代码的简洁性和安全性。
摘要由CSDN通过智能技术生成
Optional类(java.util.Optional)是一个容器类,代表一个值存在或不存在,原来用null表示一个值不存在,现在Optional可以更好的表达这个概念。并且可以避免空指针异常。

Optional对象构建&值获取方法

img

实例代码如下

Optional<String> optional = Optional.of("java8");

// NullPointerException空指针异常 值不能为空
optional = Optional.of(null);
optional = Optional.ofNullable("java8");
System.out.println(optional.get());
System.out.println(optional.orElse("java"));
System.out.println(optional.orElseGet(()-> "java"));
System.out.println(optional.orElseThrow(()->new RuntimeException()));

// 值可空 推荐使用
optional = Optional.ofNullable(null);
// 运行时抛出NoSuchElementException异常
System.out.println(optional.get());
System.out.println(optional.orElse("java"));
System.out.println(optional.orElseGet(()-> "java"));
System.out.println(optional.orElseThrow(()->new RuntimeException()));

Optional逻辑判断操作

这里可以使用Optional提供的API相关方法来执行逻辑判断操作 。

img

用户记录查询-消除null判断

以用户模块为例,UserService中提供queryUserById方法供客户端调用,如下:

public User queryUserById(Integer userId){

 return null;
}

客户端调用Java8以前逻辑代码为例避免null通常为如下形式:

User user= userService.queryUserById(10);
if(null != user){
System.out.println("匹配到该用户");
   /**
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值