美文网首页
JDK8新特性 Optional类的使用

JDK8新特性 Optional类的使用

作者: 牧心musing | 来源:发表于2021-02-26 10:32 被阅读0次

    1. 以前对null的处理方式

            String name ="zhang";
            if (name != null){
                System.out.println("have name");
            }else {
                System.out.println("no name");
            }
    

    2. Optional类介绍

    Optional是一个没有子类的工具类,是一个可以为null的容器对象,其作用主要就是为了解决避免Null检查,防止NullPointerException。


    image.png

    2.1 创建Optional类

    • Optional.of方法:of只能传入一个具体值,不能传入null
      Optional<String> zhang = Optional.of("zhang");

    • Optional.ofNullable方法:ofNullable可以传入null
      Optional<String> z = Optional.ofNullable("z");

    • Optional.empty 方法:empty 存入的是null
      Optional<Object> empty = Optional.empty();

    2.2 方法

    • isPresent:判断Optional中是否有具体值
      boolean present = optional1.isPresent();
    • get: 获取optional中的值
      如果有值,则返回具体值;如果没有值,则报错
      Object o = optional3.get();
    if (optional3.isPresent()){
            System.out.println(optional3.get());
    }else{
            System.out.println("no name");
    }
    
    • orElse
      如果optional中有值,则取出这个值,如果没有,则使用orElse中的参数值。
      optional3.orElse("o2");

    • ifPresent(Consumer<? super T> consumer)
      里面有一个Consumer接口实现的参数
      表示:如果有值就调用参数

            optional3.ifPresent(s->{
                System.out.println("have name" + s);
            });
    

    相关文章

      网友评论

          本文标题:JDK8新特性 Optional类的使用

          本文链接:https://www.haomeiwen.com/subject/xbccxltx.html