首页 > 其他分享 >Optional 类操作

Optional 类操作

时间:2023-12-05 11:22:54浏览次数:33  
标签:ofNullable String 代码 str 操作 null Optional

Optional.ofNullableOptional.of 是 Java 8 引入的 Optional 类中的两个静态方法,它们都用于创建 Optional 对象,但是它们处理空值(null)的方式不同。

  1. Optional.of(T value) 方法接受一个非空的值作为参数,并返回包含给定的非空值的 Optional 对象。如果传递给 of 方法的参数是 null,那么这个方法会立即抛出一个 NullPointerException。这是一种快速失败的机制,可以在早期阶段就发现潜在的空指针问题。

    示例代码:

    String str = "Hello";
    Optional<String> optional = Optional.of(str); // 正常执行
    

    如果 strnull,则上面的代码将抛出异常:

    String str = null;
    Optional<String> optional = Optional.of(str); // 抛出 NullPointerException
    
  2. Optional.ofNullable(T value) 方法允许传入的参数值为 null。如果传递给 ofNullable 方法的参数是 null,它会返回一个空的 Optional 对象,否则返回一个包含给定值的 Optional 对象。这个方法用于那些可能为空(null)的情况,提供了一种优雅地处理空值的方式。

    示例代码:

    String str = "Hello";
    Optional<String> optional = Optional.ofNullable(str); // 正常执行
    
    String nullStr = null;
    Optional<String> emptyOptional = Optional.ofNullable(nullStr); // 返回空的 Optional 对象
    

在使用 Optional 类时,你应该根据实际情况选择合适的方法。如果你的代码逻辑保证了变量不会是 null,那么可以使用 Optional.of;如果变量可能是 null,那么应该使用 Optional.ofNullable 来避免潜在的 NullPointerException。这样做可以使你的代码更安全、更清晰,并且能够更好地表达你的意图。

标签:ofNullable,String,代码,str,操作,null,Optional
From: https://www.cnblogs.com/Linzj5950/p/17876821.html

相关文章

  • 价差后的几种方向,澳福如何操作才能盈利
    在价差出现时,澳福认为会出现以下几种方向。昂贵资产的贬值和便宜资产的平行升值。昂贵的资产贬值,而便宜的资产保持不变。昂贵资产的贬值和便宜资产的平行贬值,但昂贵资产的贬值速度更快,超过便宜资产。更贵的一对的进一步升值和更便宜的一对的平行升值,  但是便宜的会增长得更快,超过......
  • 【组成原理-指令】扩展操作码的树形解法
    仿照哈夫曼树(或前缀编码,Prefix-free)的解法,目前先不解释具体怎么画了,直接放例题,大家自己慢慢品味吧。【例1】某指令系统指令长16位,操作码字段为4位,地址码字段为4位,采用扩展操作码技术,形成三地址指令15条、二地址指令15条、一地址指令15条、零地址指令16条。【解......
  • C语言常用的文件和目录操作
    仅个人感觉,在平时敲代码过程中涉及到的文件操作是比较少的,这就导致C语言的文件和目录操作等技术无法得到足够的练习,所以本文章就慢慢的积累偶尔会用到的文件和目录操作。本文多会以我的实际项目遇见的需求为例子展开记录文件和目录操作的一些方法。文件操作最基本的文件操作,比如......
  • 【python入门之文件操作】---文件操作
    【一】文本处理引入应用程序运行过程中产生的数据最先都是存放于内存中的若想永久保存下来,必须要保存于硬盘中。应用程序若想操作硬件必须通过操作系统而文件就是操作系统提供给应用程序来操作硬盘的虚拟概念用户或应用程序对文件的操作,就是向操作系统发起调用,然后由操作系统......
  • 文件操作
    文件操作(1)文本处理引入应用程序运行过程中产生的数据最先都是存放于内存中的。若想永久保存下来,必须要保存于硬盘中。应用程序若想操作硬件必须通过操作系统。而文件就是操作系统提供给应用程序来操作硬盘的虚拟概念。用户或应用程序对文件的操作,就是向操作系统发起调用,然后......
  • java 操作redis更新子节点数据
    1.引入Jedis依赖确保在你的Java项目中引入了Jedis依赖。你可以使用Maven添加以下依赖:<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.11.1</version></dependency>2.示例代码importredis......
  • 金蝶云星空单据编辑界面,不允许批量填充操作
    一、案例演示售后单,明细信息单据体,物料编码字段禁止批量填充。 二、开发设计编写表单插件,在BeforeEntryBatchFill事件。publicoverridevoidBeforeEntryBatchFill(BeforeBatchFillEventArgse){base.BeforeEntryBatchFill(e);//单个字段//if(e.FieldKey.E......
  • 系统框架层修改,编译,推送相关操作
    参考了原文,原文记录更加详细,framework.jarframework.jar是包含了Android系统框架层Java类的压缩文件。如果只修改了该文件,可以按照以下步骤操作#启动编译工具sourcebuild/envsetup.sh#编译framework.jar文件makeframework或者cd~/framework/base:mm或者make-j32......
  • Excel -- 基本操作
    自定义序列导入CSVCtrl+S就不会弹错误了......
  • win10 访问 ubuntu 虚拟机 上的Django web 服务 操作 和 问题解决
    虚拟机版本VMware16proubuntu版本 Ubuntu22.04.1LTS 第一步:虚拟机设置NATEdit>VirtualNetworkEditor修改配置更改DHCP设置要注意ip地址要用在虚拟机Ubuntu系统中的网段范围 在NAT添加端口转发 查看ubuntu防火墙sudoufwstatus Status:ina......