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

Chceš v prípade exception vrátiť prázdny reťazec? Tak potom áno, ale normálnejšie je zabaliť to do RuntimeException, t.j. v catch bude throw new RuntimeException(e). V takom prípade ti stačí chytať IllegalAccessException, keďže IllegalArgumentException už je zdedená z RuntimeException.

Mimochodom, ak lambda funkcia iba volá nejakú metódu s pôvodným parametrom, tak môžeš použiť rovno referenciu na metódu. V tomto prípade "f -> list.add(f)" môžeš zapísať ako "list::add" a rovnako "f -> mapping(f)" môžeš zapísať ako "this::mapping". Tá metóda mapping by mala byť statická, takže potom by to mohlo vyzerať ako "MojaTrieda::mapping". Inak, to čo je za názov metódy, že "mapping"? Tam by sa skôr hodilo niečo ako "getFieldValue" alebo niečo podobné.

Inak namiesto ".forEach(f -> list.add(f))" môžeš rovno zozbierať namapované hodnoty do listu, t.j. niečo typu list = fields.stream().filter(...).map(...).collect(Collectors.toList()). (+ definovať niekde typ)

Ďalej namiesto robenia listu z poľa a následne arraylistu z listu, z ktorého aj tak nakoniec spravíš stream môžeš rovno spraviť z poľa stream pomocou metódy "Arrays.stream".

Keď každé zreťazené volanie dáš na nový riadok, tak to bude aj čitateľné.

Reakce na odpověď

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

Zpět do poradny

loading...