gpt4 book ai didi

java - 如何用Optional(函数式编程)替换旧的Java代码?

转载 作者:行者123 更新时间:2023-12-02 12:36:05 29 4
gpt4 key购买 nike

如何使用 Java 8 可选(函数式编程)替换以下代码?

ClassA classA = dbService.findByA(a);

if (classA == null) {
classA = dbService.findByB(b);
}

if (classA == null) {
throw new Exception();
}

return classA;

编辑:也许如果我让 findByAfindByB 返回Optional会让我的代码使用函数式编程变得更干净?

最佳答案

return Optional.ofNullable(Optional.ofNullable(dbService.findByA(a))
.orElseGet(() -> dbService.findByB(b)))
.orElseThrow(() -> new Exception());

或者,Java 9,更好一点:

Optional.ofNullable(dbService.findByA(a))
.or(() -> Optional.ofNullable(dbService.findByB(b)))
.orElseThrow(() -> new Exception());

关于java - 如何用Optional(函数式编程)替换旧的Java代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58914542/

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