Optiontal
2025-4-20
| 2025-4-20
Words 523Read Time 2 min
type
status
date
slug
summary
tags
category
icon
password

概述

在编写代码的时候会经常遇到空指针的问题,每次在获取属性的时候都要进行非空判断就会显得很繁琐。
在 jdk8 的就使用了 optional 来解决这个问题

使用

创建对象

optional 就像包装类,我们把数据封装成 optional 对象,无论传入的参数是否为 null 都不会出现问题。

Optiona.offNullable()

一般使用 optional 的 offNullable 来封装成一个 Optional 对象
实际开发中很多数据都是从数据库获取的,mybatis也支持 optional 了,可以把返回的数据直接以 optional 对象返回,封装的过程由框架操作。

Optiona.of()

如果你确定一个对象不为 null,可以使用Optiona.of()封装
但是如果返回为 null 的话,就会报错
notion image
所以一般建议使用Optional.ofNullable来封装对象

安全消费值

get

orElseGet

orElseThrow

判断

使用authorOptional.ifPresent,上面例子有用到

过滤数据和 map

这些和 stream 就很像了
每次操作返回的对象仍然是用 optional 封装的对象
RabbitMQ简介及演示多个工作线程轮询netstat指令使用
Loading...