Exception Java8-嵌套流和未检查异常

Exception Java8-嵌套流和未检查异常,exception,java-8,java-stream,Exception,Java 8,Java Stream,我试图在嵌套流中抛出未检查的运行时异常。出于某种原因,这似乎是不可能的。为什么? 见下面的例子。请注意,这种逻辑没有多大意义。这只是为了演示 public static void main(String[] a) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); list.stream() .map(item -> list.stream()

我试图在嵌套流中抛出未检查的运行时异常。出于某种原因,这似乎是不可能的。为什么?

见下面的例子。请注意,这种逻辑没有多大意义。这只是为了演示

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());
}
publicstaticvoidmain(字符串[]a){
List=Arrays.asList(1,2,3,4,5);
list.stream()
.map(项目->列表.stream()
.filter(item2->item.equals(item2))
.findFirst()
.orelsetrow(运行时异常::新建))
.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());
List List=Arrays.asList(1,2,3,4,5);
list.stream()
.map(项目->列表.stream()
.filter(item2->item.equals(item2))
.findFirst()
.orelsetrow(运行时异常::新建))
.collect(Collectors.toList());

谢谢。我将尝试向javac错误列表报告。@DaveTeezo我不认为这是一个错误类型的推断,它不适合方法链接,但这是由于规范而不是实现。例如,见: