Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny

loading...