【问题标题】:How to add string text to orElse and .map如何将字符串文本添加到 orElse 和 .map
【发布时间】:2018-12-16 16:51:40
【问题描述】:

在下面的代码中,我想在 .map 和 .orElse 中都添加一条日志语句,以指示该值是否为真/假。换句话说,在 .map 我想添加 “........真的”

在里面 orElse 我要添加 “........假”

如何修改下面的代码以包含上述两个字符串。

代码

return OptionalsUtils.toOptional(this.getBuiltMovieRoomPersistentDatabase())
            .map(builderObj -> builderObj.isOpen())
            .orElse(false);

【问题讨论】:

    标签: java android java-8 optional


    【解决方案1】:

    您可以使用 Optional.orElseGet 来做到这一点,它期望 Supplier 为:

    return OptionalsUtils.toOptional(this.getBuiltMovieRoomPersistentDatabase())
            .map(builderObj -> {
                System.out.println("Its true here.");
                return builderObj.isOpen();
            })
            .orElseGet(() -> {
                System.out.println("Its false here");
                return false;
            });
    

    【讨论】:

    • 使用Supplier是明智之举。不幸的是,没有像Optional:peek 这样的东西类似于java-streams
    • @Nikolas 我真的不知道如果它存在的话该怎么办
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 2021-06-27
    • 2014-11-14
    • 1970-01-01
    相关资源
    最近更新 更多