Changes

Jump to: navigation, search

Java-mis

1,416 bytes added, 10:59, 3 August 2022
Példa 2: saját implementáció
<br>
===Hagyományos implementáció===
A Function interfésznek elkészíthetjük a saját implementációnkat is:
<source lang="java">
class MyFunctionImpl implements Function<String, Integer> {
@Override
public Integer apply(String s) {
return Integer.valueOf(s.length());
}
}
</source>
Az előbb láthattunk, hogy egy metódust kell kötelezően definiálni a Function interfészen, ez az apply. Az implementáció első sorában kikötöttük, hogy T és R String és Integer lesz. Tehát az apply() implementációnknak S-t kell kapnia paraméterként és Integer-t kell visszaadnia. Ez itt teljesül. Nem csinál mást mint a kapott String hosszát visszaadja.
<br>
<br>
Ahhoz hogy ezt használni tudjuk, példányosítani kell, és át kell adni processVariable() metódusnak, ami egy példányosított funkcionális interfészt implementáló osztályt vár. Vagyis egy olyan objektumot, ami egy olyan osztályból készült, ami implementálja a funkcionális interfész metódusát.
<source lang="java">
MyLambadClass myLambadClass = new MyLambadClass("adam");
MyFunctionImpl myFunction = new MyFunctionImpl();
 
myLambadClass.processVariable(myFunction);
</source>
<br>
A processVariable() implementációját mi készítettük, tudjuk hogy nem csinál mást, mint meghívja a myFunction.apply() metódust.
<br>
===λ implementáció===
Nézzünk az alábbi lehetséges λ implementációt (inline). Az apply-nak átadja a saját osztály változóját, majd az apply által visszaadott Integer-t kiírja a sysout-ra. Az hogy az apply belsejében hogy áll elő az Ingerer és hogy mit csinál a bemenő String paraméterrel teljes egészében az apply implementációra van bízva.
<br>

Navigation menu