Guava中Optional

Guava---Optional

Optional类实际上是一个抽象类.Guava内部对它的实现有Absent和Present两个类.Optional类实际上就是对任意类型再进行一层包装.它的目的是为了防止null值对程序的破坏.

Option.of(A)  若A是一个null,则会实际上会得到一个Absent对象.Absent对象的get操作其实现是直接抛出异常,因为不能对一个null进行get.这是完全符合逻辑的;

若A不是一个null,则实际上会得到一个Present对象,Present对象实际上内部就是A.当你get时.变得到了A.

Optional.presentInstances()方法负责将一个Iterable<Optional<A>>转换为一个Iterable<A>;

Optional对象还提供or方法,与位运算中的或类似.一个内部为null的Optional(也就是Absent)与null或,得到的还是一个Absent.与非空的对象or,得到的是该对象.

posted @ 2016-03-25 23:04  三美元  阅读(577)  评论(0编辑  收藏  举报