返回

Java 中的 Optional 类和 orElse() 方法

后端

前言

在 Java 中,Optional 类是一个强大的工具,它允许我们在不使用 null 值的情况下安全地处理可能为 null 的值。orElse() 方法是 Optional 类的关键方法之一,它提供了一种优雅的方式来处理 Optional 值的存在或不存在。

Optional

Optional 类是一个泛型类,它可以封装任何类型的对象,包括可能为 null 的对象。Optional 类主要有以下几个功能:

  • 它允许我们在不使用 null 值的情况下处理可能为 null 的值。
  • 它提供了多种方法来检查 Optional 值是否存在或不存在。
  • 它提供了一些实用方法来操作 Optional 值,例如 map()flatMap()filter()

orElse() 方法

orElse() 方法是一个实例方法,它接受一个参数。该参数是当 Optional 值不存在时要返回的默认值。orElse() 方法返回 Optional 值本身,如果存在,或者返回提供的默认值,如果不存在。

语法

<T> T orElse(T other);

其中:

  • <T>Optional 类包含的对象的类型。
  • other 是当 Optional 值不存在时要返回的默认值。

用法

orElse() 方法通常用于确保 Optional 值的存在,然后再对其执行操作。例如,以下代码片段使用 orElse() 方法来获取 Optional 值,如果不存在,则返回默认值 "Unknown":

String name = optionalName.orElse("Unknown");

示例

以下是一个演示 Optional 类和 orElse() 方法的示例:

import java.util.Optional;

public class OptionalExample {

    public static void main(String[] args) {
        // 创建一个包含值的 Optional
        Optional<String> name = Optional.of("John Doe");

        // 使用 orElse() 获取 Optional 值
        String nameOrDefault = name.orElse("Unknown");

        // 打印 Optional 值
        System.out.println(nameOrDefault); // John Doe

        // 创建一个不包含值的 Optional
        Optional<String> emptyName = Optional.empty();

        // 使用 orElse() 获取默认值
        String emptyNameOrDefault = emptyName.orElse("Unknown");

        // 打印默认值
        System.out.println(emptyNameOrDefault); // Unknown
    }
}

结论

Optional 类和 orElse() 方法是处理 Java 中可能为 null 的值的宝贵工具。它们允许我们安全地操作 Optional 值,并在需要时提供默认值。通过使用 Optional 类,我们可以避免 NullPointerException 并编写更健壮、更可读的代码。

附录