Optional 类
上一小节,我们接触到了Optional
类,但没有详细展开介绍,Optional
类也是 Java 8 新加入的类。本小节我们就来学习一下这个类,你将了解到Optional
类的解决了什么问题,如何创建Optioanl
类的对象,它又有哪些常用方法,如何在实际开发中应用Optional
类等内容。
1. Optional 类概述
空指针异常(NullPointerExceptions
)是 Java 最常见的异常之一,一直以来都困扰着 Java 程序员。一方面,程序员不得不在代码中写很多null
的检查逻辑,让代码看起来非常臃肿;另一方面,由于其属于运行时异常,是非常难以预判的。
为了预防空指针异常,Google
的Guava
项目率先引入了Optional
类,通过使用检查空值的方式来防止代码污染,受到Guava
项目的启发,随后在Java 8
中也引入了Optional
类。
Optional 类位于java.util
包下,是一个可以为 null
的容器对象,如果值存在则isPresent()
方法会返回 true
,调用 get()
方法会返回该对象,可以有效避免空指针异常。下面我们来学习如何实例化这个类,以及这个类下提供了哪些常用方法。
2. 创建 Optional 对象
查看 java.util.Optional
类源码,可以发现其构造方法是私有的,因此不能通过new
关键字来实例化:
我们可以通过如下几种方法,来创建Optional 对象:
Optional.of(T t)
:创建一个 Optional 对象,参数t
必须非空;Optional.empty()
:创建一个空的Optional
实例;Optional.ofNullable(T t)
:创建一个Optional
对象,参数t
可以为null
。
实例如下: