Optional
用于处理有可能为null
的情况,在Guava的com.google.common.base
包中
Optional
是一个抽象类,有两个final
的子类:Present
和Absent
使用的时候直接用Optional
即可, 不用关心Present
和Absent
Optional
有三个常用的静态方法:
Present
对象, 表示不能为null
, 当reference
为null
时直接抛NullPointerException
final
的Absent
对象, 表示null
Present
或者Absent
, 表示对象肯能为null
, 即参数为null
时等同于absent()
null
,则返回truenull
则抛出IllegalStateException
异常a.or(b)
a不为null返回a, 否则返回b, b为null
时抛出NullPointerException
a.orNull()
a不为null返回a, 否则返回null, 逆操作是fromNullable()