如何使用 Java 8 个流 return 可选字符串
How to return Optional String using Java 8 streams
此代码应 return 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"));
}
return URL_TO_ENVIRONMENT.stream()
.filter(p->siteUrl.contains(p.getKey()))
.map(Pair::getvalue)
.findFirst();
您是否特别需要第一场比赛?如果您只想要任何匹配项,请使用 findAny
而不是 findFirst
.
此代码应 return 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"));
}
return URL_TO_ENVIRONMENT.stream()
.filter(p->siteUrl.contains(p.getKey()))
.map(Pair::getvalue)
.findFirst();
您是否特别需要第一场比赛?如果您只想要任何匹配项,请使用 findAny
而不是 findFirst
.