Java8 - 嵌套流和未经检查的异常
Java8 - nested stream and unchecked exception
我试图在嵌套流中抛出未经检查的运行时异常。出于某种原因,这似乎是不可能的。为什么?
参见下面的示例。请注意,逻辑没有多大意义。仅供演示之用。
public static void main(String[] a) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream()
.map(item -> list.stream()
.filter(item2 -> item.equals(item2))
.findFirst()
.orElseThrow(RuntimeException::new))
.collect(Collectors.toList());
}
编译器似乎无法推断异常的类型。
只需使用
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream()
.map(item -> list.stream()
.filter(item2 -> item.equals(item2))
.findFirst()
.<RuntimeException>orElseThrow(RuntimeException::new))
.collect(Collectors.toList());
我试图在嵌套流中抛出未经检查的运行时异常。出于某种原因,这似乎是不可能的。为什么?
参见下面的示例。请注意,逻辑没有多大意义。仅供演示之用。
public static void main(String[] a) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream()
.map(item -> list.stream()
.filter(item2 -> item.equals(item2))
.findFirst()
.orElseThrow(RuntimeException::new))
.collect(Collectors.toList());
}
编译器似乎无法推断异常的类型。
只需使用
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream()
.map(item -> list.stream()
.filter(item2 -> item.equals(item2))
.findFirst()
.<RuntimeException>orElseThrow(RuntimeException::new))
.collect(Collectors.toList());