JDK8 Lambda表达式之Optional类(七)

301 阅读1分钟

Optional类介绍

Optional是一个没有子类的工具类,Optional是一个可以为null的器官对象。它的作用主要是为了解决避免null检查,防止NullPointerException。 image20201019082909852.png

Optional类的创建方式:

Optional.of(T t); 创建一个Optional实例
Optional.empty(); 创建一个空的Optional实例
Optional.ofNullable(T t); 若t不为null,创建Optional实例,否则创建空实例

Optional类的常用方法:

isPresent(): 判断是否包含值,包含值返回true,不包含值返回false
get(): 如果Optional有则将其返回,否则抛出NoSuchElementException
orElse(T t): 如果调用对象包含值,返回该值,否则返回参数t
orElseGet(Suplier s): 如果调用对象包含值,则返回值,否则返回 s 获取值
map(Function f): 如果有值对其处理,并返回处理后的Optional,否则返回Optional.empty()
/**
     * 创建一个Optional对象
     * of:只能传入一个具体的值,不能传入空
     * ofNullAble: 既可以传入集体值,也可以传入null
     * empty: 存入的就是null
     */
    public void test01(){
        //创建
        Optional<String> op1 = Optional.of("LX");
        Optional<String> op2 = Optional.ofNullable(null);
        Optional<String> op3 = Optional.empty();
        //使用

    }

    public String test02(){
        Optional<String> op1 = Optional.of("LX");
        Optional<String> op2 = Optional.ofNullable(null);
        /**
         * 存在的时候做什么
         * ifPresent: 如果有值就调用参数
         */
        op1.ifPresent( s->{
            System.out.println("有值:"+s);
        });
        return op1.map(s->
            s.toLowerCase()).map(s->
            s.toLowerCase()).orElse("null");
    }