Java 8 Optional类的简单使用教程

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

 

Optional的基本使用

Optional对象的创建方式

    // 第一种方式 通过of方法  of方法是不支持null的
    Optional<String> op1 = Optional.of("zhangsan");
    //Optional<Object> op2 = Optional.of(null);

    // 第二种方式 通过ofNullable方法 支持null
    Optional<String> op3 = Optional.ofNullable("lisi");
    Optional<Object> op4 = Optional.ofNullable(null);

    // 第三种方式 通过empty方法直接创建一个空的Optional对象
    Optional<Object> op5 = Optional.empty();

Optional中的常用方法介绍

get(): 如果Optional有值则返回,否则抛出NoSuchElementException异常   //get()通常和isPresent方法一块使用
isPresent():判断是否包含值,包含值返回true,不包含值返回false
orElse(T t):如果调用对象包含值,就返回该值,否则返回t
orElseGet(Supplier s):如果调用对象包含值,就返回该值,否则返回 Lambda表达式的返回值

 

接下来我们测试一下:

    public void test(){
        Optional<String> op1 = Optional.of("zhangsan");
        Optional<String> op2 = Optional.empty();

        // 获取Optional中的值
        if(op1.isPresent()){
            String s1 = op1.get();
            System.out.println("用户名称:" +s1);//用户名称:zhangsan
        }

        if(op2.isPresent()){
            System.out.println(op2.get());
        }else{
            System.out.println("op2是一个空Optional对象");//op2是一个空Optional对象
        }

        String s3 = op1.orElse("李四");
        System.out.println(s3);//zhangsan
        String s4 = op2.orElse("王五");
        System.out.println(s4);//王五

        String s5 = op2.orElseGet(()->{
            return "Hello";
        });
        System.out.println(s5);//王五
    }

 

输出结果:

用户名称:zhangsan
op2是一个空Optional对象
zhangsan
王五
Hello

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值