gpt4 book ai didi

java - 可选 ifPresent 否则调用另一个函数

转载 作者:行者123 更新时间:2023-12-01 19:31:35 25 4
gpt4 key购买 nike

我编写了有效的代码,但是我必须创建额外的行,有没有办法将其压缩为一行?逻辑:取最后一页,通过正则表达式执行搜索功能,如果没有找到,则取前一页,通过正则表达式执行搜索功能

Optional<String> totalBoxesLastPage = lastPage.locate(INVOICE_TOTAL_AMOUNT_BOXES);
Optional<String> totalBoxes = totalBoxesLastPage.isPresent() ?
totalBoxesLastPage : nextToLastPage
.flatMap(p -> p.locate(INVOICE_TOTAL_AMOUNT_BOXES));

谢谢大家

最佳答案

您可以使用orElseGet与供应商一起调用某个函数,该函数在可选值为空时计算值。如果存在值,则返回该值,否则返回提供函数产生的结果。在你的情况下,你必须通过 Supplier<String> 。此外,解开 Optional 后的返回类型应该是String ,不是 Optional<String> .

String totalBoxes = totalBoxesLastPage
.orElseGet(() -> nextToLastPage.flatMap(p -> p.locate(INVOICE_TOTAL_AMOUNT_BOXES))
.orElseThrow(IllegalStateException::new));

关于java - 可选 ifPresent 否则调用另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59683309/

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