optional 解决空指针_使用Optional解决空指针问题

空指针是我们最常见也最讨厌的异常,

为了防止空指针异常,

你不得在代码里写大量的非空

判断。

Java 8

引入了一个新的

Optional

类。用于避免空指针的出现,也无需在写大量的

if(obj!=null)

这样的判断了,

前提是你得将数据用

Optional

装着,

它就是一个包裹着对象

的容器。

创建

Optional

对象

of()

为非

null

的值创建一个

Optional

of

方法通过工厂方法创建

Optional

类。

需要注意的是,

创建对象时传入的参数不能为

null

如果传入参数为

null

,则抛出

NullPointerException

//

调用工厂方法创建

Optional

实例

Optional name = Optional.of("Sanaulla");

//

传入参数为

null

,抛出

NullPointerException.

OptionalsomeNull = Optional.of(null);

ofNullable()

为指定的值创建一个

Optional

,如果指定的值为

null

,则返回一个空的

(empty)Optional

ofNullable

of

方法相似,唯一的区别是可以接受参数为

null

的情况。示例如下:

//

下面创建了一个不包含任何值的

Optional

实例

Optional empty = Optional.ofNullable(null);

常用

api

解释:

isPresent()

如果存在值就返回

true

,否则返回

false

if (name.isPresent()) {

//

Optional

实例内调用

get()

返回已存在的值

System.out.println(name.get());//

输出

Sanaulla

}

get()

获取其中的数据

如果

Optional

中有值则将其返回,否则抛出

NoSuchElementException

ifPresent(consumer)

如果

Optional

实例有值则调用

consumer

,否则不做处理

要理解

ifPresent

方法,首先需要了解

Consumer

类。简答地说,

Consumer

类包含一个抽象

方法。该抽象方法对传入的值进行处理,但没有返回值。

name.ifPresent((value) -> {

System.out.println("The length of the value is: " + value.length());

});

orElse()

如果有值则将其返回,否则返回指定的默认值。

如果

Optional

实例有值则将其返回,否则返回

orElse

方法传入的参数。

empty.getElse("default");

orElseGet()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值