Ich spiele mit Möglichkeiten, eine Reihe von Objekten in eine Datei zu schreiben. Warum kompiliert die folgende Implementierung, die Iterable.forEach() verwendet, nicht? In Eclipse bekomme ich die Nachricht, dass eine IOException nicht behandelt wird. Dies ist besonders verwirrend, da ich anscheinend IOExceptions verarbeitet.Wie IOException in Iterable.forEach zu behandeln?
public void write(Iterable<?> objects) {
try (BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("out.txt"), "UTF-8"));) {
objects.forEach((o) -> bw.write(o.toString())); //Unhandled exception type IOException
} catch (IOException e) {
//handle exception
}
}
Offensichtlich funktioniert das unten. Ich bin daran interessiert, warum das oben genannte nicht funktioniert und wie es zu beheben ist.
for (Object o : objects) { bw.write(o.toString()); }
Ich habe die Consumer und Iterable Dokumentation überprüft, und keiner von ihnen scheint darauf hinzudeuten, wie diese zu lösen.
Können Sie es kompilieren über die Befehlszeile? Welche Version von Eclipse? – javajavajava