java

您所在的位置:网站首页 java怎么判断对象是否为空 java

java

2023-09-20 19:42| 来源: 网络整理| 查看: 265

1. 非空判断的意义:

防止 NPE(空指针异常NullPointerException),是程序员的基本修养,编码时要记得加非空校验,在确保对象不为null时再进行下一步,这样可以避免NPE。

2.非空判断如何做:

我们从一个简单的用例开始。在 Java 8 之前,任何访问对象方法或属性的调用都可能导致 NullPointerException:

String isocode = user.getAddress().getCountry().getIsocode().toUpperCase();

在这个小示例中,如果我们需要确保不触发异常,就得在访问每一个值之前对其进行明确地检查:

if (user != null) { Address address = user.getAddress(); if (address != null) { Country country = address.getCountry(); if (country != null) { String isocode = country.getIsocode(); if (isocode != null) { isocode = isocode.toUpperCase(); } } } }

你看到了,这很容易就变得冗长,难以维护。

1) if判断 这个最直接,很多人应该都是这么用的:

public static void main(String[] args) { Object obj=null; if(obj!=null) { System.out.println("执行接下来的代码"); } }

2) Objects.requireNonNull(obj)

public static void main(String[] args) { Object obj=null; Objects.requireNonNull(obj); // 如果传入的参数为null,则在抛出的异常中会显示为以下内容: // Exception in thread "main" java.lang.NullPointerException: 参数不能为空 Objects.requireNonNull(obj,"参数不能为空"); System.out.println("执行接下来的代码"); }

3) Optional

Opitonal类就是Java8提供的非空判断,同时Optional的存在可以让代码更加简单,可读性跟高,代码写起来更高效。

如果对象即可能是 null 也可能是非 null,你就应该使用 ofNullable() 方法:

public static void main(String[] args) { Object obj=null; // Optional.ofNullable - 允许传递为 null 参数 // 以下代码正常输出 System.out.println(Optional.ofNullable(obj).orElse("obj 为 null")); System.out.println("执行接下来的代码1"); // Optional.of - 如果传递的参数是 null,抛出异常 NullPointerException // 以下代码会报异常 System.out.println(Optional.of(obj).orElse("null null")); System.out.println("执行接下来的代码2"); }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3