Guava之Optional

Optional用于处理有可能为null的情况,在Guava的com.google.common.base包中
Optional是一个抽象类,有两个final的子类:PresentAbsent
使用的时候直接用Optional即可, 不用关心PresentAbsent



静态方法

Optional有三个常用的静态方法:

  1. Optional.of(T reference): 返回的是一个Present对象, 表示不能为null, 当referencenull时直接抛NullPointerException
  2. Optional.absent(): 返回的是一个finalAbsent对象, 表示null
  3. Optional.fromNullable(T nullableReference): 返回的可能是Present或者Absent, 表示对象肯能为null, 即参数为null时等同于absent()

实例方法

  1. boolean isPresent( ): Optional包含的T实例不为null,则返回true
  2. T get( ): 返回包含实例, 若包含的实例为null则抛出IllegalStateException异常
  3. T or(T defaultValue): a.or(b)a不为null返回a, 否则返回b, b为null时抛出NullPointerException
  4. T orNull( ): a.orNull()a不为null返回a, 否则返回null, 逆操作是fromNullable()