Changes

Jump to: navigation, search

Java Funkcionális interfész & Lambda

349 bytes added, 15:01, 19 August 2022
Hogyan működik
</source>
Nézzük át milyen módon lehet felhasználni ezt Egy funkcionális interfész implementációjának a funkcionális IF-etmegadására az alábbi 5 lehetőségünk van: * Hagyományos implementációs osztály példányosítása* Anonymus osztály használata* Lambda kifejezés használata* Metódus referencia használata: lásd [[#Java_Method_Reference_and_Constructor_Reference]]* Konstruktor referencia használata lásd [[#Java_Method_Reference_and_Constructor_Reference]]<br><br>
===Implementációs osztály példányosítása===
A klasszikus használata egy interfésznek, ha készítünk egy osztályt, ami implementálja az absztrakt metódusokat, majd példányosítjuk az osztályt, és klasszikus módon használjuk. Ehhez nincs szükség funkcionális IF-re, vagyis hogy csak egy absztrakt metódusa legyen az interfésznek, mivel az implementációban explicit megmondjuk, hogy melyiket implementáljuk:
<br>
<br>
===Anonimus Anonymus osztály használata===Ahogy a bevezetőben is láttuk, bármilyen interfésznek lehet anonimus anonymus osztállyal definiálni a még nem definiált interfészeit az alábbi szintaxissal:
<pre>
new InterfaceName() {
<br>
===Lambada kifejezés használata===
A fenti anonimus anonymus osztály definíció egy sokkal rövidebb Lambda kifejezéssel kiváltható, de csak akkor ha a szóban forgó interfész egy '''funkcionális interfész''', vagyis pontosan egy darab absztrakt metódusa van. A Lambda kifejezés szintaxisa az alábbi:
<pre>
(arguments) -> {function body}

Navigation menu