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