首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接多个Java选项

链接多个Java选项
EN

Stack Overflow用户
提问于 2019-03-13 10:29:15
回答 3查看 4.1K关注 0票数 0
代码语言:javascript
复制
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()返回布尔值,listing.getLastEntryTime()从列表返回String & add方法也返回布尔值。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-13 10:56:40

您可以将 Optional 映射到一个完全不同的值,允许您链接空检查:

代码语言:javascript
复制
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

就你而言:

代码语言:javascript
复制
Optional.ofNullable(listing.getLastEntryTime())
    .map(x -> listing.getTimingRestrictions())
    .filter(x -> !x)
    .ifPresent(x -> ... ); // do something with the listing
票数 4
EN

Stack Overflow用户

发布于 2019-03-13 10:37:27

你为什么要在那里使用可选的?

代码语言:javascript
复制
if (listing.getLastEntryTime() != null && !listing.getTimingRestrictions()) {
listingAutoVerificationResponse.getRejectReasons()
           .add(ListingAutoVerificationErrorMessages.PG_LISTING_TIMING_ERROR);
}

因为getTimingRestrictions是布尔型的,而且是一个基本类型,所以它不应该是null

票数 3
EN

Stack Overflow用户

发布于 2019-03-13 10:37:52

如果我一切都做对了..。:

代码语言:javascript
复制
if(listing.getLastEntryTime() != null){
    Optional.ofNullable(listing.getTimingRestrictions())
            .filter(x -> !x)
            .ifPresent(x -> <do whatever you want with x here>)
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55139648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档