Używam sposobów zapisywania zestawu obiektów do pliku. Dlaczego poniższa implementacja przy użyciu Iterable.forEach() nie jest kompilowana? W środowisku Eclipse pojawia się komunikat, że wyjątek IOException nie jest obsługiwany. Jest to szczególnie mylące, ponieważ wydaje mi się, że obsługuję IOExceptions.Jak radzić sobie z IOException w Iterable.forEach?
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
}
}
Oczywiście, poniżej działa. Interesuje mnie, dlaczego powyższe nie działa i jak to naprawić.
for (Object o : objects) { bw.write(o.toString()); }
Sprawdziłem dokumentację Consumer i Iterable, a żaden z nich nie wydają się sugerować, jak rozwiązać ten problem.
Czy można skompilować go za pomocą wiersza poleceń? Jaka wersja Eclipse? – javajavajava