java8 之Optional类
2019-01-03 本文已影响114人
louieSun
A container object which may or may not contain a non-null value. If a value is present, isPresent() will return true and get() will return the value.
java文档中对java.util.Optional<T>这个类的说明,简要的说明Optional是一个容器类(容器中的对象类型使用泛型),容器中的对象可能为空。
java.util.Optional<T>类是一个工具类,帮助我们来处理空对象,避免NullPointException,个人认为有借鉴google的Guava。
好了,交代完毕,进入实战。
// 获取一个 String的 Optional容器
Optional<String> optional = Optional.ofNullable(user.getName());
// 判断Optional中的对象是否存在
if (optional.isPresent()) {
// 获取容器中的对象实例。若Optional内的对象为空,则抛出 NoSuchElementException
String name = optional.get();
}
// 对象不为空则返回对象实例,否则返回指定值
String name = optional.orElse("jack");
// Optional中的对象不为空则可直接消费
optional.ifPresent(System.out::println);
以上,是java.util.Optional<T>工具常用的方法,java还提供了其他的方法,小哥哥小姐姐自行查阅帮助手册吧。
注:Optional.of()、Optional.ofNullable()得到的容器实例中的对象类型是可推断的,知识点“类型推断”不了解的小伙伴可以百度或者google。