首页 > 其他分享 >optional

optional

时间:2023-01-26 12:55:17浏览次数:43  
标签:返回 有值 optional value null Optional

前言:

  optional  读音/ˈɑːpʃən(ə)l/

  解决问题:

     日常开发中的最常见的就是空指针异常。使用optional最大程度减少空指针异常

  所在包:java.util.Optional

  描述:是一个容器类,它可以保存类型T的值,代表这个值存在,或者仅仅保存null,表示这个值不存在

使用:

  1. 创建optional对象的方式

Optional.of(T value) 创建一个Optional对象,value必须有具体值
Optional.empty() 创建一个空的Optional对象
Optional.ofNullable(T value) value可以为具体值,也可以为null值

  2.常用方法

T get():如果 Optional中有一个值,返回值,否则抛出 NoSuchElementException 
boolean isPresent():判断对象中是否有值,有返回true,没有返回false
void ifPresent(Consumer<? super T> consumer >):如果有值,就执行Consumer接口的实现代码,并且该值会作为参数传给它
T orElse(T other):如果有值则将其返回,否则返回指定的other对象
T orElseGet(Supplier<? extends T>other):如果有值则将其返回,否则返回由Supplier 接口实现提供的对象。
T orElseThrow(Supplier<? extends X> exceptionSupplier):如果有值则将其返回,否则抛出由Supplier接口实现提供的异常

  3.使用Demo

 /*-------创建对象的形式------*/
        String s = "xiaoGao" ;
        //1. of:只能传入一个具体值,不能传入null,否者出现(空指针异常)java.lang.NullPointerException
        Optional<String> s1 = Optional.of(s);

        //2. ofNullable:可以传入具体值,也可以传入null值
        Optional<String> s2 = Optional.ofNullable(null);

        //3. 创建一个空的Optional对象
        Optional<Object> s3 = Optional.empty();

 

标签:返回,有值,optional,value,null,Optional
From: https://www.cnblogs.com/Life-QX/p/17067707.html

相关文章

  • 解决Enable-WindowsOptionalFeature : 功能名称 Microsoft-Hyper-V 未知。
    将下面内容复制到文本文件中,然后将文件命名为Hyper-V.cmd,然后以管理员身份运行即可,运行完成后重启电脑。pushd"%~dp0"dir/b%SystemRoot%\servicing\Packages\*Hyper-V*.m......
  • Optional类的使用避免空指针
    一、Optional介绍Optional被定义为一个简单的容器,它可以保存类型T的值,其值可能是null或者不是null。在Java8之前一般某个函数应该返回非空对象但是偶尔却可能......
  • Java8之Optional中orElse和orElseGet的区别
    背景JAVA8之后引入了optional关于optional的使用也比较多了,此处暂时不表这儿暂且只说一下orElse和orElseGet的区别写了一个获取枚举类型的工具类,来做个例子嗯,怎么......
  • [Java SE]Java 8特性:java.util.Optional
    1概述本质上,这是一个包含有可选值的包装类,这意味着Optional类既可以含有对象也可以为空(null/empty)。Optional是Java实现函数式编程的强劲一步,并且帮助在范式中实......
  • Java8中Optional类入门-替代null避免冗杂的非空校验
    场景Java核心工具库Guava介绍以及Optional和Preconditions使用进行非空和数据校验:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/127683387上面在讲Guava......
  • Java8 Optional为空处理
    packagecom.example.cesium.utils;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importlombok.ToString;importjava......
  • java.util.Optional基础
    传统处理Null方式深层质疑每次不确定一个变量是否为null时,添加一个进一步嵌套的if块,增加了代码缩进的层数。publicStringgetCarInsuranceName(Personperson){......
  • Python Type Hint中Optional[str]=None和str=None的区别
    PythonTypeHint中Optional[str]=None和str=None的区别1问题来源在读到FluentPython,2edEdition,P260时产生了一些疑问:在Python中使用typehint时,以下两个声明有......
  • Java Optional
    Java8新增的一个容器对象,相当于在对象上面进行了包装,并提供了一些操作对象的实用方法。一些方法的使用示例:@Testpublicvoidoptional(){//empty......
  • 你的项目使用Optional了吗?
    1.基本概念java.util.Optional<T>类本质上就是一个容器,该容器的数值可以是空代表一个值不存在,也可以是非空代表一个值存在。 2.获取对象2.1相关方法2.2案例详......