【备忘录】关于Java的Optional

首先

关于Optional,我将以我自己的理解写下备忘录。

“Optional” 在中文中是什么意思?

一种用来封装值并表达该值可能为null的类,可以防止NullPointerException。

使用可选项的原因

调用可能为null的方法时,需要事先实施检查是否为null。
然而,有可能忘记实施检查。
为了防止遗忘实施,可以使用Optional。

请通过源代码确认

使用ofNullable方法,创建Optional类型的对象。
在if语句中使用isPresent函数,仅当值存在时才执行length方法。
此时,由于变量str的值为null,因此不会在控制台上显示任何内容。

        String str=null;
        Optional<String>strOpt=Optional.ofNullable(str);

        if(strOpt.isPresent()) {
            String message=strOpt.get();
            System.out.println(message.length());
        }

不使用if语句进行Null检查的方法还可以使用Lambda表达式来编写如下。

        strOpt.ifPresent(v->System.out.println(v.length()));

如果作为值接受的情况

使用map函数。
map方法的返回值是包装了lambda表达式返回值的Optional。(在这种情况下,返回的是Integer类型的Optional)
如果strOpt的值不存在,则会返回没有值的Optional对象。

Optional<String>strOpt=Optional.ofNullable(str);
Optional<Integer>lengthOpt=strOpt.map(v->v.length());

请阅读下列内容并用中文进行同义改写,只需要提供一个选项:参考

广告
将在 10 秒后关闭
bannerAds