Optional的简单用法

本文介绍了Java中的Optional类的使用,包括如何创建对象,安全地获取值(get、orElseGet、orElseThrow),过滤操作(filter)以及数据转换(map)。Optional帮助开发者避免空指针异常,提供更安全的代码处理方式。
摘要由CSDN通过智能技术生成

一、创建对象

        Optional<aaa> aaa1 = Optional.ofNullable(aaa);
        aaa1.ifPresent(str -> System.out.println(aaa) );

 如果使用  Optional.of()方法,必须保证这个参数不为空,不然还是会报空指针异常。
 Optional.empty(); 创建一个空对象。
        Optional<Object> empty = Optional.empty();

二、获取值

   optional.get(); 获取封装对下个,但是不推荐,如果为空也会报空指针异常。

        AAA aaa = new AAA();
        Optional<AAA> optional = Optional.ofNullable(aaa);
        AAA aaa1 = optional.get();

   optional.orElseGet();如果数据不为空就返回封装的数据,如果为空根据你传入的参数来创建对象作为默认值返回。

AAA aaa2 = optional.orElseGet(() -> new AAA());

   optional.orElseThrow();如果数据不为空就获取该数据,如果为空则根据你传入的参数来创建异常抛出

        try{
            AAA aaa3 = optional.orElseThrow(() -> new RuntimeException("数据为空"));
        }catch (Exception e){
            e.printStackTrace();
        }

三、过滤

        filter()方法对数据进行过滤,如果原本有数据但是不符合判断,也会变成一个无数据的Optional对象,可以直接加判断做操作。

Optional<AAA> aaa3 = optional.filter(str -> str.getAge() > 18);

optional.filter(str -> str.getAge() > 18).ifPresent( str -> System.out.println(str) );

四、判断

        可以使用isPresent()方法进行是否存在数据判断,如果为空返回值为false,如果不为空返回true。但是这种方式并不能体现Optional的好处,更推荐使用ifPresent方法。

        Optional<AAA> optional = Optional.ofNullable(aaa);
        if(optional.isPresent()){
            System.out.println(optional.get().getAge());
        }

   五、数据转换 

        Optional提供了map可以让我们对数据进行转换,并且转换得到的数据也还是被Optional包装好的,保证了我们的使用。

Optional<List<String>> strings = optional.map(str -> str.getList());


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值