博客
关于我
Java8 | Optional类
阅读量:126 次
发布时间:2019-02-26

本文共 2213 字,大约阅读时间需要 7 分钟。

Java Optional类详解

Optional类是一个容器类,用于表示一个值的存在或不存在。它通过替代传统的null值,提供了更安全和直观的方式来处理缺失值。在Java编程中,尤其是在处理可选值时,Optional类是一个非常有用的工具。

创建Optional类对象

Optional类提供了三种主要的创建方式:

  • of(T t):创建一个包含非空值的Optional实例。调用该方法时,参数t必须非null,否则会抛出NullPointerException。
  • empty():创建一个空的Optional实例。
  • ofNullable(T t):创建一个可能包含值的Optional实例,参数t可以是null。
  • 以下是一个使用of方法创建Optional实例的示例:

    Girl girl = new Girl();Optional girlOptional = Optional.of(girl);System.out.println(girlOptional);

    以下是一个使用empty方法创建空Optional实例的示例:

    Optional emptyOptional = Optional.empty();System.out.println(emptyOptional); 以下是一个使用ofNullable方法创建Optional实例的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);System.out.println(girlOptional); 判断Optional容器中是否包含对象 可以通过以下方法判断Optional容器中是否包含值: isPresent():返回true,表示Optional容器中包含一个值;返回false,表示容器为空。 ifPresent(Consumer
    consumer):如果Optional容器中有值,则执行Consumer接口的实现方法;如果没有值,则不执行。 以下是一个使用isPresent方法判断值是否存在的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);boolean present = girlOptional.isPresent();System.out.println(present); 以下是一个使用ifPresent方法执行回调逻辑的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);girlOptional.ifPresent(g -> System.out.println("女孩存在"));// 如果女孩不存在,不会执行上述代码 获取Optional容器的对象 如果Optional容器中包含值,可以通过以下方法获取值: get():返回Optional容器中的值。如果容器为空,则抛出NoSuchElementException异常。 orElse(T other):如果Optional容器中有值,则返回该值;如果没有值,则返回参数other。 orElseGet(Supplier
    supplier):如果Optional容器中有值,则返回该值;如果没有值,则调用supplier提供一个替代值。 orElseThrow(Supplier
    supplier):如果Optional容器中有值,则返回该值;如果没有值,则抛出由supplier提供的异常。 以下是一个使用orElse方法获取替代值的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);Girl girlOrElse = girlOptional.orElse(new Girl("替代值"));System.out.println(girlOrElse); 以下是一个使用orElseGet方法获取替代值的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);Girl girlOrElseGet = girlOptional.orElseGet(() -> new Girl("替代值"));System.out.println(girlOrElseGet); 以下是一个使用orElseThrow方法抛出异常的示例: Girl girl = null;Optional girlOptional = Optional.ofNullable(girl);try { Girl girlOrElseThrow = girlOptional.orElseThrow(() -> new RuntimeException("值不存在")); System.out.println(girlOrElseThrow);} catch (RuntimeException e) { System.out.println("抛出了异常:" + e.getMessage());}

    转载地址:http://ffuy.baihongyu.com/

    你可能感兴趣的文章
    ORACLE 客户端工具连接oracle 12504
    查看>>
    oracle 行转列
    查看>>
    Oracle 表
    查看>>
    Oracle 递归
    查看>>
    oracle--用户,权限,角色的管理
    查看>>
    Oracle10g EM乱码之快速解决
    查看>>
    Oracle10g下载地址--多平台下的32位和64位
    查看>>
    Oracle10g安装了11g的ODAC后,PL/SQL连接提示TNS:无法解析指定的连接标识符
    查看>>
    Oracle11G基本操作
    查看>>
    Oracle11g服务详细介绍及哪些服务是必须开启的?
    查看>>
    Oracle11g静默安装dbca,netca报错处理--直接跟换操作系统
    查看>>
    oracle12安装软件后安装数据库,然后需要自己配置监听
    查看>>
    Oracle——08PL/SQL简介,基本程序结构和语句
    查看>>
    Oracle——distinct的用法
    查看>>
    oracle下的OVER(PARTITION BY)函数介绍
    查看>>
    Oracle中DATE数据相减问题
    查看>>
    Oracle中merge into的使用
    查看>>
    oracle中sql查询上月、本月、上周、本周、昨天、今天的数据!
    查看>>
    oracle中sql的case语句运用--根据不同条件去排序!
    查看>>
    oracle中关于日期问题的汇总!
    查看>>