当给定Optional
包含预定义对列表中的键时,此代码应返回siteUrl
字符串(否则为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"));
}
答案 0 :(得分:4)
return URL_TO_ENVIRONMENT.stream()
.filter(p->siteUrl.contains(p.getKey()))
.map(Pair::getvalue)
.findFirst();
你特别需要第一场比赛吗?如果您只是想要匹配,请使用findAny
代替findFirst
。