如何在Java中检查null?2025年8月4日 | 阅读14分钟 在Java中,null 是一个字面量。它主要用于为变量赋空值。字符串、对象或日期时间等可以为空。我们不能将空值赋给原始数据类型,如 int、float 等。 检查 null 是一个常见的任务,它确保您的程序能够顺利运行,而不会遇到 NullPointerException,而 NullPointerException 通常发生在我们尝试使用尚未初始化的对象引用时。 在编程中,通常我们需要检查一个对象或字符串是否为 null,以便对其执行某些任务。为了检查 null 字符串,我们有一些 String 类的预定义方法。让我们看一些不同数据类型的示例,以了解如何检查它们是否为 null。 检查 null 字符串在Java中,字符串可以为 null、空或仅包含空格,它们 each 都是不同的。 1. 空字符串是一个字符串对象,具有某个值,但其长度等于零。例如: 2. 仅包含空格的字符串是一个其值为空格的字符串。其长度始终大于 0,既不为空也不为 null。例如: 3. null 字符串没有值,通过将 null 关键字作为值赋给它来使字符串为 null。例如: 为了检查字符串是否为 null,我们使用比较运算符 (==)。让我们看一个示例,了解如何使用它进行 null 检查。 NullCheckExample1.java 输出 ![]() 使用 isEmpty() 方法在 Java 中检查 null在 Java 中,isEmpty() 方法用于检查字符串或集合是否为空,但它不验证对象是否为 null。为了防止 NullPointerException,在使用 isEmpty() 方法之前,首先确保对象不是 null 至关重要。 文件名: NullOrEmptyCheck.java 输出 The string is not null and not empty. It contains: Hello, World! The string is either null or empty. 使用 equals() 方法检查字符串是否为 null 或空Java 中的 equals() 方法用于比较两个字符串的内容是否相等,而不是检查 null 值。为了防止 NullPointerException,在对字符串调用 equals() 之前,始终使用 == null 进行 null 检查。这确保了字符串比较安全且无错误。 文件名: StringNullEmptyCheck.java 输出 str1 is either null or empty. str2 is either null or empty. str3 is neither null nor empty. 使用 (!= null) 在 Java 中检查 null!= null 检查是用于在尝试访问其属性或方法之前验证对象引用不是 null 的一种直接技术。这种简单而有效的检查对于维护代码安全至关重要,因为它防止代码尝试对不指向任何对象的引用执行操作。 文件名: NullCheckDemo.java 输出 The string is: Hello, World! The string is null. 使用 Apache Commons Lang 库Apache Commons Lang 库的 StringUtils 类提供了一系列对字符串操作的 null 安全的实用方法,简化了检查空、修剪和比较字符串等任务。它通过精简常见的字符串操作来提高 Java 应用程序中的代码可读性和效率。 文件名: EnhancedStringCheckExample.java 输出 text1 is empty or null text2 is empty or null text3 is blank 使用 Java 11 isBlank() 方法isBlank() 方法是 String 类在 Java 中的一个有用补充,用于评估字符串是否为空白。如果字符串为空或仅包含空格字符,则该方法返回 true,比简单的 isEmpty() 方法提供了更细致的检查。 文件名: StringCheckJava11Example.java 输出 text1 is empty or null text2 is empty or null text3 is blank text4 is not empty, null, or blank. It is: Goodbye, Hello! 日期和日期时间对象Date 和 DateTime 都是非原始数据类型,因此它们可以存储 null 值。让我们以日期和时间对象为例,了解如何检查 null 日期或 datetime 对象。 NullCheckExample2.java 输出 ![]() 类 Optional<LocalDate>Java 中的 Optional<LocalDate> 是一个容器,可以持有 LocalDate 或为空,它提供了比使用 null 处理缺失值更清晰、更安全的方式。作为 Java 8 改进的一部分,它鼓励显式处理日期的存在或缺失,从而降低 NullPointerException 的风险并提高代码的可读性。 使用 if-else 语句在 Java 中,使用 Optional<LocalDate> 类的 if-else 语句提供了一种结构化的方法来处理可能存在或不存在的日期,从而避免了 null 引用的陷阱。Optional 是 Java 8 中引入的 java.util 包中的一个容器类,它可以包含 LocalDate 类型的值或为空,表示缺少日期值。 语法 文件名: CheckNullDateExample.java 输出 The Date object is null. 使用 (=) 运算符将赋值 (=) 运算符与 Optional<LocalDate> 结合使用涉及将一个 Optional 实例赋给另一个。这会分配 Optional 对象的引用,而不是其中的 LocalDate 值。这类似于分配对象引用。此操作有助于管理 Optional 实例,以比 null 检查更安全的方式指示 LocalDate 值的存在或缺失。 检查日期是否为 null 检查日期是否不为 null 文件名: CheckAndAssignDateExample.java 输出 The Date object is null. Java 对象为了检查 Java 对象是否为 null,我们可以使用 Objects 类的 isNull() 方法或比较运算符。让我们看一个示例,了解如何使用 isNull() 方法或比较运算符对 Java 对象进行 null 检查。 方法 1 Java 中的比较运算符 == 是一个二元运算符,用于比较两个操作数。当涉及到对象引用时,== 运算符会检查两个操作数是否指向内存中的同一个对象,而不是比较对象中存储的实际内容或值。在 null 检查的上下文中,== 用于直接将对象引用与 null 进行比较,以确定引用是否未指向任何对象。 NullCheckExample3.java 输出 ![]() 方法 2 isNull() 方法是 java.util.Objects 类的一部分,该类在 Java 8 中引入。它是一个静态方法,接受一个参数,如果提供的引用为 null,则返回 true,否则返回 false。 NullCheckExample4.java 输出 ![]() 方法 3 nonNull() 方法也是 java.util.Objects 类的一个成员,它作为 isNull() 的逻辑补充。它检查提供的对象引用是否不是 null。如果引用指向一个对象,则该方法返回 true,如果为 null,则返回 false。 文件名: NullCheckExample3.java 输出 Object is Null 方法 4 requireNonNull() 方法是 java.util.Objects 类的另一个实用方法。它旨在检查对象是否为 null,并在其为 null 时抛出带有可选自定义消息的 NullPointerException。此方法通常在方法的开头使用,以验证参数不为 null,从而确保对象在进一步执行流程之前满足某些非 null 标准。 文件名: NullCheckExample5.java 输出 Object is Null 下一个主题Final-class-in-java |
构造函数与 方法在 Java 中的区别 构造函数 构造函数和 方法彼此不同。但是,构造函数用于初始化对象的 状态。构造函数还可以像 方法一样包含数据成员和成员函数。构造函数的数据成员和成员函数...
5 分钟阅读
ORM 代表对象关系映射。它是一种位于 Web 应用程序和数据库之间的中间件应用程序或工具。它在 API 中封装了存储驱动程序的特定实现细节。什么是 ORM?ORM 是一种将 Java 对象和关系之间的数据转换的技术...
阅读 3 分钟
全球数百万玩家已经爱上了永恒的冒险游戏《弹跳传说》(Bounce Tales)。它提供了有趣且引人入胜的游戏体验,并为支持Java的智能手机而创建。该游戏通过结合平台跳跃、解谜和...,适合所有年龄段的玩家。
阅读 4 分钟
Java 数据库连接 (JDBC) 是一个 Java API,它使 Java 程序能够访问和操作存储在数据库中的数据。JDBC 提供了一组通用的类和接口来连接数据库、运行 SQL 命令以及检索数据。称为 JDBC 驱动程序的软件元素...
阅读 4 分钟
在编程世界中,操作数组是一项基本技能。数组可以被洗牌,包括随机重新排列其元素,作为一项常见的过程。此过程对于构建随机游戏牌、运行统计模拟或仅仅是更随机地显示数据至关重要……
5 分钟阅读
在数组中查找缺失的数字是编程中一个常见的问题。它经常出现在数据验证、错误检查或解决数学谜题等场景中。在本节中,我们将探讨如何使用 Java 编程语言在数组中查找缺失的数字....
阅读9分钟
向后兼容性是指系统、产品或技术与早期版本协同工作的能力,或集成为早期版本创建的旧系统或输入的 alojamento。当对系统的修改破坏了这种兼容性时,就会导致所谓的“重大更改”。在...
阅读 6 分钟
绳索的最小成本是计算机科学和竞争性编程中的一个经典问题。它基于合并绳索以最小化总成本的概念。想象一下,你有几根不同长度的绳索,需要将它们合并成一根...
阅读 8 分钟
Java 8 引入的 java.util.function 包包含 ToLongBiFunction 接口,该接口用于在 Java 中实现函数式编程。它表示一个在接受两个 T 和 U 类型的参数后返回 long 类型结果的函数。它接受两个泛型...
阅读 2 分钟
Java 是使用最广泛的编程语言之一,遵循面向对象原则,并以其健壮性和可移植性而闻名。在该语言中,纯函数概念在函数式编程中起着举足轻重的作用,它提供了一种编写可靠且可预测的代码的结构化方法。在...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India