java8 - Optiaonal学习

Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。

Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。

Optional 类的引入很好的解决空指针异常。

 

    public static void main(String[] args) {

        //声明String 变量为null
        String variable = null;

        //1 Optional 判空返回默认数据
        System.out.println(Optional.ofNullable(variable).orElse("Other"));
        //2 Optional 判空获取get
        System.out.println(Optional.ofNullable(variable).orElseGet(()->"tiezhu.com"));
        //3 Optional 判空抛出异常
        Optional.ofNullable(variable).orElseThrow(()->new RuntimeException("Throw an exception from here"));
    //==================================================================================================================
        //新建List集合
        List<String> list = null;
        System.out.println(Optional.ofNullable(list).orElse(Lists.newArrayList("Hello World!")));
        System.out.println(Optional.ofNullable(list).orElseGet(() -> Lists.newArrayList("com.tiezhu")));
        Optional.ofNullable(list).orElseThrow(()-> new RuntimeException("Throw an exception from here"));

        //Object or Collection 判空处理
        Optional<List<String>> optional = Optional.ofNullable(list);
        if(optional.isPresent()){
            System.out.println("optional -- is not null");
        }else{
            System.out.println("optional -- is null");
        }
    //==================================================================================================================
        DrugstoreVo drugstoreVo = null;
        Optional<DrugstoreVo> optional1 = Optional.ofNullable(drugstoreVo);
        if(optional.isPresent()){
            System.out.println("optional1 -- is not null");
        }else{
            System.out.println("optional1 -- is null");
        }

        // 对象的属性并不会被作为判断条件
        DrugstoreVo drugstoreVo1 = new DrugstoreVo();
        Optional<DrugstoreVo> optional2 = Optional.ofNullable(drugstoreVo1);
        if(optional2.isPresent()){
            System.out.println("optional2 -- is not null");
        }else{
            System.out.println("optional2 -- is null");
        }
    }

 

posted @ 2020-12-16 14:33  平淡日子里的刺-  阅读(153)  评论(0)    收藏  举报