![](/img/trans.png)
[英]Unable to throw a `checked` exception when using Java Optional ifPresentOrElse method
[英]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.