7,540
edits
Changes
Java-mis
,→List-forEach()
==List-forEach()==
<br>
<source lang="java">
List<String> items = new ArrayList<>();
items.forEach(item->System.out.println(item));
</source>
<br>
Ez miért működik?
<br><br>
A List a java.lang.Iterale osztály leszármazottja. Ebben van egy default metódus implementáció a forEach-re.
<source lang="java">
* Az interfésznek pontosan 1 darab absztrakt metódusa van (vagyis implementálandó)
}}
<br><br>
Az alábbi Lambda kifejezéssel inline implementációt készítettünk a funkcionális interfészhez, ami egy Lista elem típusú paramétert vár és void a visszatérési értéke.
items.forEach(item->System.out.println(item));
</source>
<br>
<br>
A Lambda kifejezést kicserélhetjük method reference-re is:
<source lang="java">
items.forEach(System.out::print);
</source>
Ez egy statikus metódus referencia, amivel azt mondjuk meg, hogy a Consumer implementációja a System.out.print(T) metódust fogja meghívni. A lényeg, hogy egy argumentumos legyen a megadott metódus és fel tudjon dolgozni T lista típusú elemet.