📅  最后修改于: 2023-12-03 14:42:50.910000             🧑  作者: Mango
在Java 8中,Optional是一种用于简化代码的容器类。OptionalDouble是Optional的一个特殊版本,它用于包装基本类型double。
OptionalDouble的ifPresentOrElse()方法是一个函数式接口,它允许在值存在时执行一个操作,否则执行另一个操作。本文将介绍该方法的语法、返回值和示例。
下面是OptionalDouble的ifPresentOrElse()方法的语法:
public void ifPresentOrElse(DoubleConsumer action, Runnable emptyAction);
参数说明:
该方法没有返回值。
下面是使用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错误。