基本上,以下代码不会通过编译器,因为x -> Optional.of(x).orElseThrow(() -> new Exception("")
部分标记为循环引用。有人能告诉我为什么有循环引用?什么是解决方法?
Arrays.asList("a", "b").stream().map(x -> Optional.of(x).orElseThrow(() -> new Exception("")));
答案 0 :(得分:1)
想出来:map
内部的函数不能抛出异常。
答案 1 :(得分:1)
RuntimeException
可以正常工作:
Arrays.asList("a", "b")
.stream()
.map(x -> Optional.of(x).orElseThrow(
() -> new RuntimeException("")));