首页 > 其他分享 >Optional类

Optional类

时间:2023-03-06 19:44:32浏览次数:33  
标签:返回 对象 包装 为空 apply Optional

Optional类

java.util.Optional<T>

尽量避免空指针

1、创建Optional对象

  (1)创建一个空Optional  Optional.empty()

  (2)创建一个包装了对象的Optional  Optional.of(obj)  obj必须是非空,否则异常

  (3)创建一个包装对象可能为空的Optional  Optional.ofNullable(obj)  obj可能为空

2、获取包装的对象

  (1)get()  如果Optional包装的对象不为空,正常返回,如果为空,报异常

  (2)orElse(T other)  如果Optional包装的对象不为空,正常返回,如果为空,返回other对象

  (3)orElseGet(Supplier)  如果Optional包装的对象不为空,正常返回,如果为空,返回由供给型接口提供的对象  Supplier接口:T  get()

  (4)orElseThrow(Supplier<? extends X> exceptionSupplier)  如果Optional包装的对象不为空,正常返回,如果为空,报异常,报的异常是由Supplier提供的异常对象

3、是否存在

  (1)boolean isPresent()  表示判断Optional中的包装的对象是否存在,如果存在就返回true,否则就是false

  (2)ifPresent(Consumer<? super T> consumer)   如果存在,就执行Consoumer指定的操作,如果不存在就不做  Consumer: void accept(T t)

4、过滤

  Optional<T> filter(Predicate<? super T> predicate)    对Optional中包装的对象进行过滤,按照Predicate的条件进行判断,如果满足,返回它,如果不满足,返回empty的Optional

5、映射

  <U> Optional<U> map(Function<? super T,? extends U> mapper) 

    对Optional包装对象,执行Function中的apply方法,apply方法返回的结果可以是任意结果,map方法的结果,把apply方法的结果包装成一个Optional对象

  <U> Optional<U> flatMap(Function<? super T,Optional<U>> mapper)  

    对Optional包装对象,执行Function中的apply方法,apply方法返回的结果是一个Optional,map方法的结果,把apply方法的结果直接返回

标签:返回,对象,包装,为空,apply,Optional
From: https://www.cnblogs.com/woniupa/p/17183674.html

相关文章

  • Java 8新特性之 Optional 类
    前言java.util.Optional是java8中引进的一个新的类,我们通过Optional类的源码可以看到,该方法的作用可以对可能缺失的值进行建模,而不是直接将null赋值给变量。Optional类......
  • 读Java实战(第二版)笔记07_用Optional取代null
    1. null的由来1.1. 历史上被引入到程序设计语言中,目的是为了表示变量值的缺失1.2. 包括Java在内的大多数现代程序设计语言为了与更老的语言保持兼容2. null带来的......
  • JDK8 新语法介绍(Lambda、Stream、Optional)
    (目录)lambda表达式代码中的遇到的函数式接口(有且仅有一个抽象方法),可以用lambda来代替,比如MQ发消息,我们传统的做法:jmsTemplate.send(newMessageCreator(){......
  • Functions (Closures, Optional Arguments)
    AQuickReviewonHoistingWhat'shoisting? →hoisting istheprocessingof declarations beforeanycodeisexecuted.what'sa declaration?a declarati......
  • optional
    前言:optional 读音/ˈɑːpʃən(ə)l/解决问题:日常开发中的最常见的就是空指针异常。使用optional最大程度减少空指针异常所在包:java.util.Op......
  • 解决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......