Java8之Optional

 

/*
        Optional 容器类常用方法
        Optional.of(T t) 创建一个Optional实例
        Optional.empty()  创建一个空的Optional实例
        Optional.ofNullable(T t)   若t不为null,则创建Optional实例,否则创建空实例
        isPresent():判断是否包含值
        orElse(T t):如果对象包含值,返回该值,否则返回t
        orElseGet(Supplier s):如果对象包含值,返回该值,否返回 s 获取的值
        map(Function f): 如果有值对其进行处理,并返回处理后的Optional,否则返回Optional.empty()
        flatMap(Function map) : 与map类似,要求返回值是Optional
         */

        Optional<Book> op = Optional.of(new Book());
        System.out.println(op.get());

        Optional<Book> op2 = Optional.ofNullable(new Book());
        if(op2.isPresent()){
            System.out.println(op2.get());
        }

        Book book = op2.orElse(new Book());

        Book book2 = op2.orElseGet(()-> new Book());

        Optional<String> str = op2.map(e-> e.getName());

        Optional<String> str2 = (Optional<String>) op2.flatMap(e-> Optional.of(e.getName()));

 

posted @ 2021-05-02 23:11  残星  阅读(89)  评论(0编辑  收藏  举报