【发布时间】:2020-09-29 04:37:31
【问题描述】:
我有一个可选的变量:
//es is an arraylist, rock is a class in the arraylist
var as = IntStream.range(0,es.size()).boxed()
.filter(i->es.get(i) instanceof Rock)
.max((l1,l2) -> comparator(es,(Rock)es.get(l1),(Rock)es.get(l2)));
在这种情况下,我想为我的方法返回一个 OptionalInt:
if (as.isPresent()) {return Optionalint.of(as);} //Obviously it is not working
return OptionalInt.empty();
在这种情况下,如何将 Optional 转换为 OptionalInt? 顺便说一句,我发现这个问题How to convert an Optional to an OptionalInt? 在我喜欢的情况下并不是很有帮助:
Stream.of(as).filter(s -> s != null && s.matches("\\d+"))
.mapToInt(Integer::parseInt).findAny();
它会给我一个错误:方法 match(String) 未定义 Optional 类型 有什么办法解决这个问题吗?谢谢!
【问题讨论】:
-
请解释清楚为什么链接的帖子没有帮助。展示您如何使用链接的帖子以及它如何无法解决您的问题。
-
您是否尝试过
return as;,而不是return OptionalInt.of(as);,因为as已经是OptionalInt?
标签: java java-stream optional