gpt4 book ai didi

java - 使用Optional.of()方法进行方法链接是个好主意吗?

转载 作者:行者123 更新时间:2023-11-30 06:43:09 24 4
gpt4 key购买 nike

使用Optional.of()方法进行方法链接是个好主意吗?

我和一群同事讨论了Optional.of()方法。 目前他们正在使用Optional.of()方法的项目之一 实现方法链接函数式编程风格。

这里我给出示例:

    TxResponse initTxDataResponse = gateway.initiateTx(initTxDataRequest);
Optional.of(initTxDataResponse)
.map(initTxDataResponse::getReturnCode)
.filter(code -> ResponseCode.SUCCESS.getCode().equals(code))
.map(code -> {
// doing some business logic ,we are not
return code;
}).orElseThrow(() -> new NoTransactionFound());

我觉得我们过度使用了Optional.of()方法

使用Optional.of()方法在jdk 8中实现函数式编程风格是一个好习惯吗?

案例2:

TxResponse response = transactionRepository.getTransacationById(TransactionId).elseThrow(() -> ResourceNotFoundException());

Optional.of(response)
.map(response::getReturnCode)
.filter(code -> ResponseCode.SUCCESS.getCode().equals(code))
.map(code -> {
// doing some business logic ,we are not
return code;
}).orElseThrow(() -> new RuntimeException());

在这种情况下,需要Optional.of()来实现函数式编程风格吗?

最佳答案

如果你不介意没有代码的答案,只需我的 0.02 美元。

我们在我的工作场所(在代码审查中)为此争论了很多次。坦率地说,我有时不知道它何时是正确的(由其创建者的意图解读)或不正确。我什至不认为在创作时,斯图尔特·马克斯和其他人确定这将如何被(滥用)使用。与 Java 语言中的任何其他功能一样,它也会被滥用,这一点可以肯定。但随着时间的推移,最佳实践将会出现,人们将会使用它。

我倾向于认为它不会损害性能,您的使用情况是可以的。与 if else 检查相比,至少它非常容易阅读(这里代表我自己);但同样可能是我做了(太多)Java-8 及以上代码。

话虽这么说,把它变得一团糟太容易了,界限在哪里,取决于你(很可能还有你的团队)。

关于java - 使用Optional.of()方法进行方法链接是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52342892/

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