Optional 对象的使用

Optional<Xxx>
Optional<TUser>
----------------------------
Optional.of(xxx)  //xxx必须为非空
Optional.ofNullable(xxx) //xxx可以为空也可以为非空
Optional.empty() //参数包装成null对象
例子一
TUser user = userMapper.selectById(userId);
if (user == null) {
    return Optional.empty();
}
return Optional.of(user);
-----------------------------------------上面的可以用这样来表示
TUser user = userMapper.selectById(userId);
return Optional.ofNullable(user);
Optional.ofNullable(product).map(productConverter()); //Optional结合map使用

Optional的返回值的处理

optional.isPresent() //如果值存在的话,进行一些处理
optional.orElse(value); //如果对象的值为null时,则使用value 
未例isPresent()

optional1.isPresent() //判断值是否存在 
// 如果不是null,调用Consumer
optional1.ifPresent(new Consumer<Integer>() {
    @Override
    public void accept(Integer t) {//具体的逻辑
        System.out.println("value is " + t);
    }
});

orElseThrow()值不存在抛异常

@GetMapping("/group/{groupProductId}")
public ApiResponse<GroupProduct> getGroupProductDetail(@PathVariable long groupProductId) {
    Optional<GroupProduct> optional = productService.getGroupProductById(groupProductId);
    return ApiResponse.success(optional.orElseThrow(() -> ApiException.propagate(ErrorCodes.ENTITY_NOT_FOUND)));
}    //不存在值时抛异常,存在时则会返回GroupProduct

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值