繁体   English   中英

如何使用Java 8流返回Optional String

[英]How to return Optional String using Java 8 streams

当给定的siteUrl包含预定义的配对对中的键时,此代码应返回Optional String(否则为Optional.empty() )。

有没有比这里使用new Pair(null, null)更好的方法? 或者也许改变整个表情?

static Optional<String> get(String siteUrl) {
    return Optional.ofNullable(URL_TO_ENVIRONMENT
            .stream()
            .filter(p -> siteUrl.contains(p.getKey()))
            .findFirst().orElse(new Pair(null, null)).getValue());
}

private static final List<Pair> URL_TO_ENVIRONMENT = buildList();

private static List<Pair> buildList() {
    return Arrays.asList(
            new Pair("aaa.mysite.com", "aaa_something"),
            new Pair("bbb.mysite.com", "bbb_something"),
            new Pair("ccc.mysite.com", "ccc_comething"));
}
return URL_TO_ENVIRONMENT.stream()
    .filter(p->siteUrl.contains(p.getKey()))
    .map(Pair::getvalue)
    .findFirst();

您是否特别需要第一场比赛? 如果您只想要任何匹配项,请使用findAny而不是findFirst

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM