繁体   English   中英

Java 8 中 Optional 的 ifPresentOrElse 的奇怪行为(对我而言)

[英]Strange behaviour (for me) with ifPresentOrElse of an Optional in Java 8

我有以下代码:

Optional<Person> oldestPerson = personenListe.stream().collect(Collectors.reducing(maxAge));
Consumer<Person> personPrinter = p -> System.out.println("The oldest is : " + p.getName());
Runnable noPersonMessagePrinter = () -> System.out.println("There is no person");
oldestPerson.ifPresentOrElse(personPrinter,noPersonMessagePrinter );

我的 IDE 将 ifPresentOrElse 下划线为红色,因为它没有找到签名,但从我看来它应该是正确的。

有什么猜想吗?

方法ifPresentOrElse是在 Java 9 中添加的,因此它在 Java 8 中不可用。 这就是您的 IDE 将其标记为无效的原因:该方法在 Java 8 中不存在。

ifPresentOrElse()仅在 Java 9 中有效,但如果您使用的是 Spring Boot,则可以在Optionals类中找到ifPresentOrElse()方法。 它为您执行相同的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM