使用Optional-避免NPE

发布时间 2023-10-23 14:19:39作者: Tk小武

1、常用写法:

Optional.ofNullable(messageTemplate).orElseThrow(() -> new BusinessException("模板不能为空"));

2、介绍

Optional.ofNullable() 是 Java 8 引入的一个方法,用于创建一个可能为null的Optional对象。Optional 是一种容器,可以包含一个非null的值,也可以不包含值(即为空)。使用 Optional 可以更好地处理可能为null的值,避免空指针异常。

要使用 Optional.ofNullable(),可以按照以下方式进行操作:

  1. 导入 java.util 包,以确保可以使用 Optional 类。

  2. 使用 Optional.ofNullable() 方法来创建一个 Optional 对象,该方法接受一个可能为null的对象作为参数。如果提供的对象是非null的,它会包装这个对象;如果提供的对象是null,它会创建一个空的 Optional 对象。

    案例 demo:

  3. public static void main(String[] args) {
    String nullableValue = "Hello, Optional!";
    // 使用 Optional.ofNullable() 创建一个包含值的 Optional 对象
    Optional<String> optionalWithValue = Optional.ofNullable(nullableValue);

    // 打印Optional对象的值
    optionalWithValue.ifPresent(value -> System.out.println("Value: " + value));

    String nullValue = null;
    // 使用 Optional.ofNullable() 创建一个空的 Optional 对象
    Optional<String> optionalEmpty = Optional.ofNullable(nullValue);

    // 如果值为空,执行一个操作
    optionalEmpty.ifPresent(value -> System.out.println("This will not be printed"));
    }
  4. Optional.ofNullable() 方法被用来包装一个可能为null的字符串。如果字符串不为null,那么 optionalWithValue 包含这个字符串,可以使用 ifPresent 方法来访问它。如果字符串为null,optionalEmpty 将是一个空的 Optional 对象,不包含任何值。

    使用 Optional 有助于更加优雅地处理可能为null的情况,并避免因为空指针异常而导致的程序崩溃。