全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

如何处理Java中的空点异常

发布时间:2022-09-20 10:42:12
发布人:syq

  如果你花了一些时间在Java中开发程序,在某些时候你肯定会看到以下异常:java.lang.NullPointerException。由于 .在本文中,我们将介绍一些在Java中处理的方法。NullPointerException NullPointerException

如何处理Java中的空点异常

  简单空值检查

  请考虑以下代码段:

1

  如果按原样运行此代码,则会出现以下异常:

  Exception in thread "main" java.lang.NullPointerException

  您收到此错误的原因是因为我们尝试执行的操作是 .length()str1null

  一个简单的解决方法是添加一个空检查,如下所示:str1

2

  这将确保,当 是 时,您不会在其上运行该函数。str1nulllength()

  但您可能有以下问题。

  如果 str1 是一个重要的变量呢?

  在这种情况下,您可以尝试如下操作:

7

  这个想法是,当你期望一个值是 ,最好检查那个变量。如果该值确实是 ,则采取替代操作。nullnullnull

  这不仅适用于字符串,还适用于 Java 中的任何其他对象。

  龙目岛空值检查

  现在举个例子:

3

  这里我们有一个接受三个参数的函数:、 和 。str1strListstr2

  如果这些值中的任何一个被证明是,我们根本不想执行这个函数中的逻辑。null

  您如何实现这一目标?

  这就是龙目岛派上用场的地方。为了在代码中添加龙目岛库,请包含以下 Maven 依赖项:

4

  以下是龙目岛检查的代码外观:null

8

  在函数的每个参数之前,我们添加注释。@NonNull

  另外,当我们调用此函数时,我们在函数调用周围放置一个块来捕获 。try-catch NullPointerException

  如果函数中给出的任何参数原来是 ,则该函数将抛出一个 。然后,这将被块捕获。null NullPointerException try-catch

  这确保了,如果任何函数参数被证明是 ,那么函数中的逻辑不会被执行,我们知道代码不会异常表现。null

  这也可以通过一堆检查语句来完成。但是使用龙目岛可以帮助我们避免编写多个检查语句,并使代码看起来更干净。null null

  列表和空值

  假设您有一个列表,并且想要打印列表中的所有元素:

5

  在循环访问列表之前,我们需要对列表进行检查。null

  如果该检查不存在,则尝试循环访问列表将引发一个 。null null NullPointerException

  映射和空值

  让我们假设您需要访问映射中特定键的值的场景:

6

  首先,我们需要对映射对象本身执行 null 检查。如果未执行此操作,并且映射为 ,则抛出 a。这是使用null Null PointerException testMap!=null

  完成后,在访问特定密钥之前检查是否存在该密钥。您可以使用 检查密钥是否存在。如果未执行此操作,并且特定键不存在,则您将获得值。testMap.containsKey("first_key")null

  是否有必要始终添加空检查?

  如果您确定某个特定变量永远不会是 ,那么您可以避免添加检查。这可能适用于私有函数,您可以在其中控制进入功能的数据。null null

  但是,如果您不确定对象的可空性,最好添加一个检查。null

  法典

  本文中讨论的所有代码都可以在此 Github 存储库中找到。

  您现在知道如何在 Java 中进行处理了!NullPointerException

相关文章

Visual Studio Online和GitHub有什么区别?

Visual Studio Online和GitHub有什么区别?

2023-10-15
计算机视觉中所指的深度和深度学习中的深度有什么区别?

计算机视觉中所指的深度和深度学习中的深度有什么区别?

2023-10-15
显著性目标检测和一般目标检测最本质的区别是什么区别?

显著性目标检测和一般目标检测最本质的区别是什么区别?

2023-10-15
在目标检测里single-shot和multi-shot的主要区别是什么?

在目标检测里single-shot和multi-shot的主要区别是什么?

2023-10-15

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取