gpt4 book ai didi

java - 链接多个 Java 可选值

转载 作者:行者123 更新时间:2023-12-01 07:44:54 26 4
gpt4 key购买 nike

private void validatePGTimingRestrictions(
Listing listing,
ListingAutoVerificationResponse listingAutoVerificationResponse) {
if (Optional.ofNullable(listing.getLastEntryTime()).isPresent()
&& Optional.ofNullable(listing.getTimingRestrictions()).isPresent()
&& !listing.getTimingRestrictions()) {
listingAutoVerificationResponse.getRejectReasons()
.add(ListingAutoVerificationErrorMessages.PG_LISTING_TIMING_ERROR);
}
}

如何使用链接选项和 orElseGet 优化此代码。listing.getTimingRestrictions() 返回 boolean 值,listing.getLastEntryTime() 返回字符串,List 中的 add 方法也返回 boolean 值。

最佳答案

您可以映射可选到完全不同的值,从而允许您链接空检查:

Object a, b, c;
....
Optional.ofNullable(a) // null-check for 'a'
.map(x -> b) // null-check for 'b'
.map(x -> c) // null-check for 'c'
.ifPresent(x -> ...) // do something with a,b,c

就您而言:

Optional.ofNullable(listing.getLastEntryTime())
.map(x -> listing.getTimingRestrictions())
.filter(x -> !x)
.ifPresent(x -> ... ); // do something with the listing

关于java - 链接多个 Java 可选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55139648/

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