返回顶部
首页 > 资讯 > 后端开发 > JAVA >java中optional 常用用法
  • 792
分享到

java中optional 常用用法

javaoptional 2023-08-16 17:08:15 792人浏览 薄情痞子
摘要

Java中的Optional是一个容器对象,它可以包含一个非空值,也可以为空。它的主要作用是在编写代码时避免空指针异常。 java 8 中Optional的完整用法如下: 1. 创建Optional对象 可以通过of()方法创建一个包含非空

Java中的Optional是一个容器对象,它可以包含一个非空值,也可以为空。它的主要作用是在编写代码时避免空指针异常。
java 8 中Optional的完整用法如下:

1. 创建Optional对象

可以通过of()方法创建一个包含非空值的Optional对象,例如:

Optional optional = Optional.of("value");

也可以通过ofNullable()方法创建一个包含可能为空的值的Optional对象,例如:

Optional optional = Optional.ofNullable(null);

2. 获取Optional对象的值

可以通过get()方法获取Optional对象中的非空值,例如:

String value = optional.get();

如果Optional对象中的值为空,调用get()方法会抛出NoSuchElementException异常。因此,在调用get()方法之前,最好先使用isPresent()方法判断Optional对象是否包含一个非空值。

3. 判断Optional对象是否包含非空值

可以使用isPresent()方法判断Optional对象是否包含一个非空值,例如:

if (optional.isPresent()) {    // Optional对象包含非空值} else {    // Optional对象为空}

也可以使用ifPresent()方法在Optional对象包含非空值时执行一些操作,例如:

optional.ifPresent(value -> System.out.println(value));

4. 获取Optional对象中的值或默认值

可以使用orElse()方法获取Optional对象中的值或默认值,例如:

String value = optional.orElse("default");

如果Optional对象中的值为空,则返回指定的默认值。

5. 获取Optional对象中的值或抛出异常

可以使用orElseThrow()方法获取Optional对象中的值或抛出异常,例如:

String value = optional.orElseThrow(() -> new RuntimeException("value is null"));

如果Optional对象中的值为空,则抛出指定的异常。

6. 转换Optional对象中的值

可以使用map()方法将Optional对象中的值转换为另一个类型的值,例如:

Optional optional = Optional.of("123").map(Integer::parseInt);

如果Optional对象中的值为空,则返回一个空的Optional对象。

7. 过滤Optional对象中的值

可以使用filter()方法过滤Optional对象中的值,例如:

Optional optional = Optional.of("value").filter(value -> value.startsWith("v"));

如果Optional对象中的值不满足指定的过滤条件,则返回一个空的Optional对象。

Java 9 增强

我们介绍了 Java 8 的特性,Java 9 为 Optional 类添加了三个方法:or()、ifPresentOrElse() 和 stream()。

or() 方法与 orElse() 和 orElseGet() 类似,它们都在对象为空的时候提供了替代情况。or() 的返回值是由 Supplier 参数产生的另一个 Optional 对象。

如果对象包含值,则 Lambda 表达式不会执行:

@Testpublic void whenEmptyOptional_thenGetValueFromOr() {    User result = Optional.ofNullable(user)      .or( () -> Optional.of(new User("default","1234"))).get();    assertEquals(result.getEmail(), "default");}

上面的示例中,如果 user 变量是 null,它会返回一个 Optional,它所包含的 User 对象,其电子邮件为 “default”。

ifPresentOrElse() 方法需要两个参数:一个 Consumer 和一个 Runnable。如果对象包含值,会执行 Consumer 的动作,否则运行 Runnable。

如果你想在有值的时候执行某个动作,或者只是跟踪是否定义了某个值,那么这个方法非常有用:

Optional.ofNullable(user).ifPresentOrElse( u -> logger.info("User is:" + u.getEmail()),  () -> logger.info("User not found"));

来源地址:https://blog.csdn.net/xy724518356/article/details/129879055

--结束END--

本文标题: java中optional 常用用法

本文链接: https://www.lsjlt.com/news/371791.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java中optional 常用用法
    Java中的Optional是一个容器对象,它可以包含一个非空值,也可以为空。它的主要作用是在编写代码时避免空指针异常。 java 8 中Optional的完整用法如下: 1. 创建Optional对象 可以通过of()方法创建一个包含非空...
    99+
    2023-08-16
    java optional
  • java中optional的常用方法有哪些
    这篇文章主要介绍了java中optional的常用方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中optional的常用方法有哪些文章都会有所收获,下面我们一起来看看吧。前言Java中的Opt...
    99+
    2023-07-05
  • java中optional的一些常用方法总结
    目录前言1. 创建Optional对象2. 获取Optional对象的值3. 判断Optional对象是否包含非空值4. 获取Optional对象中的值或默认值5. 获取Option...
    99+
    2023-05-14
    java中optional的用法 java optional类 java中optional
  • 详解Java8中Optional的常见用法
    目录一、 简介二、Java8 之前,空指针异常判断三、Optional的使用1.创建Optional实例2.访问 Optional 对象的值3.返回默认值4.返回异常 (常...
    99+
    2024-04-02
  • java中Optional类的使用方法
    这篇文章主要介绍java中Optional类的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、说明为了解决 java 中的空指针问题而生。Optional 类是一个容器类,它可以保存类型 T 的值,代表这个...
    99+
    2023-06-15
  • 详解Java中Optional类的使用方法
    目录一、Optional类的来源二、Optional类是什么三、Optional类用法四、代码示例1、创建Optional类2、判断Optional容器中是否包含对象3、获取Opti...
    99+
    2024-04-02
  • Java利用Optional解决空指针异常
    目录背景介绍案例基本用法解析转换与过滤案例优化源码解析总结背景介绍 Java 8 引入了一个十分实用的 Optional 类,它主要是为了解决空指针异常(NullPointerExc...
    99+
    2024-04-02
  • 如何使用Java中的Optional
    这篇文章主要介绍如何使用Java中的Optional,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!从Java8 引入的一个很有趣的特性是Optional类。Optional类主要解决的问题是臭名昭著的空指针异常(Nu...
    99+
    2023-06-17
  • Java中的Optional处理方法
    目录java.util.Optional使用Optional构建对象获取Optional中的对象Optional 中map和flatmap的差别在我们日常的开发中,我们经常会遇到 N...
    99+
    2024-04-02
  • java中Optional的作用是什么
    今天就跟大家聊聊有关java中Optional的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用...
    99+
    2023-06-14
  • 怎么在JAVA中使用Optional类
    怎么在JAVA中使用Optional类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Optional在JAVA中被定义为一个容器类,更确切的说只存一个元素的容器。conta...
    99+
    2023-05-30
    java optional
  • java中Optional的使用详细解析
    目录Optional的使用详解1、Optional介绍2、构建Optional3、Optional API 及源码注解4、测试使用4.1、构建4.2、判断类4.3、获取类(常用)4....
    99+
    2024-04-02
  • 学会在Java中使用Optional功能
    目录前言NullityOptional Class客户责任null Optional Objects重要方法创建方法ofofNullableempty实...
    99+
    2024-04-02
  • Java中Optional的正确用法与争议点详解
    目录简介#创建Optional判空取值函数式处理Optional争议点总结简介# 要说Java中什么异常最容易出现,我想NullPointerException一定当仁不让,为了解决...
    99+
    2022-11-13
    Java中Optional用法 Optional java Java中Optional类的使用方法
  • 如何使用Java Optional类
    这篇文章主要讲解了“如何使用Java Optional类”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Java Optional类”吧!注意:示例代码要求使用Java 11及更高版本...
    99+
    2023-06-02
  • Java中Optional类及orElse方法详解
    目录引言Java 中的 Optional 类ofNullable() 方法orElse() 方法案例orElseGet() 方法案例orElse() 与 orElseGet() 之间...
    99+
    2024-04-02
  • 详解JAVA中的OPTIONAL
    目录一、概述二、创建Optional 实例2.1、访问Optional对象的值2.2、返回默认值2.3、orElse()和orElseGet()的不同之处2.4、返回异常三、转换值3...
    99+
    2024-04-02
  • java optional的作用是什么
    Java Optional 是一种容器类,用于表示一个值可能存在或可能不存在的情况。它提供了一种更优雅和安全的方式来处理可能为空的情...
    99+
    2024-02-29
    java
  • Java使用Optional实现优雅避免空指针异常
    目录摘要Optional 介绍Optional 使用创建 Optional 对象orElse()与orElseGet()map()与flatMap()filter()总结摘要 空指针...
    99+
    2023-03-21
    Java Optional空指针异常 Java Optional空指针 Java Optional
  • Optional 使用方法详解
    Optional的作用是什么?他都有哪些方法?阿里规范点名说尽量用Optional来避免空指针,那么什么场景用Optional?本篇文章围绕这三点来进行讲解。 目录 一、Optional类的来源二、Optional类是什么?三、Op...
    99+
    2023-08-17
    java 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作