Optional 类操作

发布时间 2023-12-05 11:21:10作者: Kllin

Optional.ofNullableOptional.of 是 Java 8 引入的 Optional 类中的两个静态方法,它们都用于创建 Optional 对象,但是它们处理空值(null)的方式不同。

  1. Optional.of(T value) 方法接受一个非空的值作为参数,并返回包含给定的非空值的 Optional 对象。如果传递给 of 方法的参数是 null,那么这个方法会立即抛出一个 NullPointerException。这是一种快速失败的机制,可以在早期阶段就发现潜在的空指针问题。

    示例代码:

    String str = "Hello";
    Optional<String> optional = Optional.of(str); // 正常执行
    

    如果 strnull,则上面的代码将抛出异常:

    String str = null;
    Optional<String> optional = Optional.of(str); // 抛出 NullPointerException
    
  2. Optional.ofNullable(T value) 方法允许传入的参数值为 null。如果传递给 ofNullable 方法的参数是 null,它会返回一个空的 Optional 对象,否则返回一个包含给定值的 Optional 对象。这个方法用于那些可能为空(null)的情况,提供了一种优雅地处理空值的方式。

    示例代码:

    String str = "Hello";
    Optional<String> optional = Optional.ofNullable(str); // 正常执行
    
    String nullStr = null;
    Optional<String> emptyOptional = Optional.ofNullable(nullStr); // 返回空的 Optional 对象
    

在使用 Optional 类时,你应该根据实际情况选择合适的方法。如果你的代码逻辑保证了变量不会是 null,那么可以使用 Optional.of;如果变量可能是 null,那么应该使用 Optional.ofNullable 来避免潜在的 NullPointerException。这样做可以使你的代码更安全、更清晰,并且能够更好地表达你的意图。