java8 之Optional类

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。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java 8自Java 5(发行于2004)以来最具革命性的版本。Java 8 为Java语言、编译器、类库、开发...
    huoyl0410阅读 651评论 1 2
  • 痛点 在java编码过程中,大家碰到的最多的异常是什么,我相信必然这货NullPointerException必然...
    两句挽联阅读 11,103评论 0 53
  • 前言:Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geek...
    糖宝_阅读 1,327评论 1 1
  • 文/覆舟 红堇白桃彩纱裙,漫入丰草扑流萤。 几处闻声寻不见,蓦然回首笑相亲。 梨涡浅,新月明,十二年后应娉婷。 借...
    陈覆舟阅读 358评论 0 1
  • 我,该是一个怎样的人?我是谁?谁是我? 总会有某一个时刻,像着了魔,非要问个清楚明白:我是谁,我从哪里来,我将要到...
    夏寞之秋阅读 265评论 3 0