Java8与函数式编程Java8

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。

上一篇 下一篇

猜你喜欢

热点阅读