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()
