JDK8新特性 Optional类的使用

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。


JDK8新特性 Optional类的使用_第1张图片
image.png

2.1 创建Optional类

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

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

  • Optional.empty 方法:empty 存入的是null
    Optional 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 consumer)
      里面有一个Consumer接口实现的参数
      表示:如果有值就调用参数

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

    你可能感兴趣的:(JDK8新特性 Optional类的使用)