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