Kann jemand erklären, warum der folgende Code nicht kompiliert wird, aber der zweite tut?Java Stream Collectors.toList() wird nicht kompilieren
nicht
private void doNotCompile() {
List<Integer> out;
out = IntStream
.range(1, 10)
.filter(e -> e % 2 == 0)
.map(e -> Integer.valueOf(2 * e))
.collect(Collectors.toList());
System.out.println(out);
}
Compilation Fehler auf dem IntStream sammeln Linie
- Verfahren sammeln (Lieferant, ObjIntConsumer, BiConsumer) in der Art kompilieren Sie ist für die Argumente nicht anwendbar (Collector>)
- Typ stimmt nicht überein: Konvertierung von Collector> zu Lieferant nicht möglich
Compiliert
private void compiles() {
List<Integer> in;
in = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
List<Integer> out;
out = in.stream()
.filter(e -> e % 2 == 0)
.map(e -> 2 * e)
.collect(Collectors.toList());
System.out.println(out);
}
Beim nächsten Mal fügen Sie die Fehlermeldung hinzu, anstatt nur anzugeben, dass sie nicht kompiliert wird. – AxelH