📌  相关文章
📜  Java中的 OptionalDouble ifPresentOrElse() 方法及示例(1)

📅  最后修改于: 2023-12-03 14:42:50.910000             🧑  作者: Mango

Java中的 OptionalDouble ifPresentOrElse() 方法及示例

在Java 8中,Optional是一种用于简化代码的容器类。OptionalDouble是Optional的一个特殊版本,它用于包装基本类型double。

OptionalDouble的ifPresentOrElse()方法是一个函数式接口,它允许在值存在时执行一个操作,否则执行另一个操作。本文将介绍该方法的语法、返回值和示例。

语法

下面是OptionalDouble的ifPresentOrElse()方法的语法:

public void ifPresentOrElse(DoubleConsumer action, Runnable emptyAction);

参数说明:

  • action:当OptionalDouble实例的值存在时要执行的操作。
  • emptyAction:当OptionalDouble实例的值不存在时要执行的操作。
返回值

该方法没有返回值。

示例

下面是使用ifPresentOrElse()方法的示例代码:

OptionalDouble optionalDouble = OptionalDouble.of(3.14);

// 当optionalDouble存在时,打印它的值
optionalDouble.ifPresentOrElse(
    value -> System.out.println("OptionalDouble value is " + value),
    () -> System.out.println("OptionalDouble is empty")
);

optionalDouble = OptionalDouble.empty();

// 当optionalDouble不存在时,打印一条消息
optionalDouble.ifPresentOrElse(
    value -> System.out.println("OptionalDouble value is " + value),
    () -> System.out.println("OptionalDouble is empty")
);

上面代码的输出结果是:

OptionalDouble value is 3.14
OptionalDouble is empty

在第一个示例中,OptionalDouble实例的值存在,因此打印了它的值。在第二个示例中,OptionalDouble实例的值不存在,因此打印了一条消息。

此外,还可以使用方法引用来实现ifPresentOrElse()方法,如下所示:

optionalDouble.ifPresentOrElse(
    System.out::println,  // 等价于 value -> System.out.println(value)
    () -> System.out.println("OptionalDouble is empty")
);

这里使用的是System.out::println方法引用,它等价于lambda表达式value -> System.out.println(value)。

总之,OptionalDouble的ifPresentOrElse()方法为我们提供了一种非常方便的方式来处理OptionalDouble实例的存在和不存在的情况,避免了一些常见的NullPointerException错误。