gpt4 book ai didi

JavaOptional.ifPresentOrElse 带返回值

转载 作者:行者123 更新时间:2023-12-01 17:47:38 25 4
gpt4 key购买 nike

在Java中,我最近开始采用Optional在我的代码中输入更多内容。这可以实现更好的null -值处理以及在某种程度上也更安全的代码。 OptionalifPresentOrElse方法,允许您在存在值时执行特定操作,或在不存在值时执行特定操作。但是,此方法不允许您声明返回类型。

有没有一种简单的方法可以使用选项和 ifPresentOrElse类似方法,在解包 Optional 时返回值?

最佳答案

假设以下声明(编辑:注意ConsumerRunnable是来自@ImJustACowLol self 回答的接口(interface),而不是java.util接口(interface)。对于 self 回答被删除的情况,接口(interface)与 java.util 中的接口(interface)相同,只是功能接口(interface)方法具有通用返回类型而不是 void 。无论如何命名应该选择不同的方式。):

Consumer<InputType, OutputType> yourConsumer = ...;
Runnable<OutputType> yourRunnable = ...;
Optional<InputType> yourOptional = ...;

您可以编写以下语句

OutputType result = yourOptional.map(yourConsumer).orElseGet(yourRunnable);

这确实不适合单个方法调用,但恕我直言,尽管仍然足够简洁和可读。

关于JavaOptional.ifPresentOrElse 带返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60839318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com