gpt4 book ai didi

java - 仅当 Optional 存在时才解包

转载 作者:搜寻专家 更新时间:2023-10-30 21:18:51 27 4
gpt4 key购买 nike

所以目前我有

String uri = website.getUri();
Optional<PageDetail> pageDetail = webClient.getDetailOfUri(uri);
String displayName;
String description;
if (pageDetail.isPresent()) {
displayName = pageDetail.get().getName();
description = pageDetail.get().getDescription();
} else {
displayName = uri;
description = "";
}

我调用 getDetailOfUri(uri)方法,返回 Optional<PageDetail> ,我想设置字符串 displayNamedescriptionPageDetail 的值对象的字段(如果存在)。否则,我想将其设置为一些默认值。

我的问题是,是否有更好的方法来重写它?我目前的代码似乎有点冗长乏味,我想知道是否有更简洁的方法来做到这一点。

最佳答案

你可以这样写:

String uri = website.getUri();
Optional<PageDetail> pageDetail = webClient.getDetailOfUri(uri);
String displayName = pageDetail.map(PageDetail::getName).orElse(uri);
String description = pageDetail.map(PageDetail::getDescription).orElse("");

如果Optional未设置,map将返回相同的未设置 Optional。否则,它将把它映射到包含 getName() 结果的 Optional。然后我们可以使用orElse在未设置 Optional 时返回默认值。

关于java - 仅当 Optional 存在时才解包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32277465/

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