

Java - ArrayList - Stream - Jak vložit kód do try-catch
Dobrý den,
Když použiji tento kód
public ArrayList<String> getAllFields() {
var fields = new ArrayList<>(Arrays.asList(getClass().getDeclaredFields()));
var list = new ArrayList<String>(fields.size());
fields.stream().filter(f -> !Modifier.isStatic(f.getModifiers()))
.map(f -> f.get(this).toString()).forEach(f -> list.add(f));
return list;
}
tak to řve, že v map může dojít k chybě.
Jak to ale ošetřím? Když použiji přímo NetBeans (Surround Statement with try-catch), tak mi vygeneruje
public ArrayList<String> getAllFields() {
var fields = new ArrayList<>(Arrays.asList(getClass().getDeclaredFields()));
var list = new ArrayList<String>(fields.size());
fields.stream().filter(f -> !Modifier.isStatic(f.getModifiers()))
.map(f -> {
try {
f.get(this).toString();
} catch (IllegalArgumentException | IllegalAccessException ex) {
Logger.getLogger(Example.class.getName()).log(Level.SEVERE, null, ex);
}
}).forEach(f -> list.add(f));
return list;
}
což je taky špatně viz příloha. (Při spuštění to zhavaruje s chybou Uncompilable source code - Erroneous sym type: java.util.stream.Stream.map.forEach)
Co, prosím Vás, dělám špatně?
Děkuji