<div dir="ltr">Ja. Éppen ezért kellet várni ennyit, mert invokedynamic-cal akarták megcsinálni. Sima névtelen osztályokkal már hamarabb is össze tudták volna dobni, de az nem lett volna annyira hatékony futásidőben. Tekintve, hogy elég sokszor használt feature lesz, rá akartak menni a hatékony megvalósításra. (Brian Goetz mondta a Devoxx-on) V</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-20 21:11 GMT+01:00 Zsombor <span dir="ltr"><<a href="mailto:gzsombor@gmail.com" target="_blank">gzsombor@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div><div>Alaposabban megnézve, hogy mi történik a háttérben, valóban van némi VM mágia, invokedynamic-sal, amivel meg tudják spórolni, hogy a VM direktben csináljon egy functional interfacet egy privát függvényből - amivé a lamdba kifejezés fordul. S úgy tűnik, hogy a javac nem tud 7-es bytecode-ra fordítani, ha vannak lambdák is a kódban.<br>
</div> A függvény nevekkel olyan nagy probléma - ha jól értem - nincsen. Mivel ez mindig már fordítás időben kiderül, olyat ugyanis nem lehet írni, hogy <br><br></div>public void sum (Collection<X> xs, (X) -> int func) {<br>
</div><div> int result = 0;<br></div><div> for (X x : xs) {<br></div><div> result += func.<b><i>apply</i></b>(x);<br></div><div> } <br></div> return result;<br><div><div>}<br><br></div><div>hanem muszáj ilyet:<br>
<br>
</div><div>interface Summér<X> { <br> int szamol(X param);<br>}<br><br></div><div>public void sum(Collection<X> xs, Summér<X> func) {<br><div> int result = 0;<br></div><div> for (X x : xs) {<br></div>
<div> result += func.<b><i>szamol</i></b>(x);<br></div><div> } <br></div> return result;<br>}<br></div><div><br></div><div>S amikor hívjuk, akkor a fordító elég okos, hogy a megfelelő tipussá konvertálja ezt:<br></div>
<div> sum(strings, (String s) -> s.length());<br></div><div><br><br></div><div>Vagy valamiről lemaradtam :)<br></div><div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-20 20:41 GMT+01:00 Peter Verhas <span dir="ltr"><<a href="mailto:peter@verhas.com" target="_blank">peter@verhas.com</a>></span>:<div>
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Annyi a specialitás, hogy nem lehet tudni, hogy mi a neve a metódusnak. Lambadánál ugye nincs is, az interface meg bármilyen nevet definiálhat, csak ne legyen több. Még nem mélyedtem el benne munka mellett (ahol még mindig J6) mert most még azt nézem amiről szerdára a blogot írom. De ami késik az nem a közelben gyártott óra.<div>
<br><div>
<div style="text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;text-transform:none;white-space:normal;font-family:Verdana;word-wrap:break-word;word-spacing:0px">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="color:rgb(136,136,136)">--</span><span style="color:rgb(136,136,136)"><br></span><span style="color:rgb(136,136,136)">Dipl. Ing. Peter Verhas</span><span style="color:rgb(136,136,136)"><br></span><span style="color:rgb(136,136,136)"></span><span style="color:rgb(136,136,136)"><a href="mailto:peter@verhas.com" target="_blank">peter@verhas.com</a></span><span style="color:rgb(136,136,136)"><br>
</span><span style="color:rgb(136,136,136)"><a href="tel:%2B41791542095" value="+41791542095" target="_blank">+41791542095</a></span><span style="color:rgb(136,136,136)"><br></span><span style="color:rgb(136,136,136)">skype: verhas</span></div>
</span><br></div></span><br></div></span><br></div><br><br>
</div><div><div>
<br><div><div>On 2014.03.20., at 20:35, Zsombor <<a href="mailto:gzsombor@gmail.com" target="_blank">gzsombor@gmail.com</a>> wrote:</div><br><blockquote type="cite"><div dir="ltr">A lambda kifejezések nem új nyelvi elemekké fordulnak, hanem kutya közönséges objektumokká, amik egy funkcionális interfészt implementálnak. Önmagában emiatt még simán lehetne futtatni régebbi VM-eken is.<br>
<br>Üdv<br> Zs<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-20 19:44 GMT+01:00 Gábor Garami <span dir="ltr"><<a href="mailto:gabor.garami@hron.me" target="_blank">gabor.garami@hron.me</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ha es amennyiben nem tartalmaz a kod olyan nyelvi elemeket, amiknek<br>
nincs korabbi JVM-beli megfelelojuk. Es a closure-t (lambda kifejezes,<br>
hivd ahogy akarod) eleg korulmenyes portolni kodszinten korabbi VM-re<br>
- ha lehet egyaltalan.<br>
Garami Gábor<br>
E-mail: <a href="mailto:gabor.garami@hron.me" target="_blank">gabor.garami@hron.me</a><br>
Tel: <a href="tel:%2B36%2020%20235%209621" value="+36202359621" target="_blank">+36 20 235 9621</a><br>
MSN: <a href="mailto:hrgy@vipmail.hu" target="_blank">hrgy@vipmail.hu</a><br>
Skype: hron84<br>
<br>
<br>
2014-03-20 13:46 GMT+01:00 Peter Verhas <<a href="mailto:peter.verhas@gmail.com" target="_blank">peter.verhas@gmail.com</a>>:<br>
<div><div>> Szerintem a Java 8-ban irt library is fordithato korábbival kompatibilis<br>
> JVM-re. Nem így van?<br>
><br>
><br>
> On Thu, Mar 20, 2014 at 11:48 AM, <a href="mailto:auth.gabor@javaforum.hu" target="_blank">auth.gabor@javaforum.hu</a><br>
> <<a href="mailto:auth.gabor@javaforum.hu" target="_blank">auth.gabor@javaforum.hu</a>> wrote:<br>
>><br>
>> Hi,<br>
>><br>
>> > Szerintem soha. Hiszen a google nem akar fizetni semmit az Oraclenek a<br>
>> > javáért...<br>
>><br>
>> Válasszuk (legalább ketté) a dolgot: a JVM fejlesztés nem érinti az<br>
>> Android-ot, mert teljesen más a VM, a nyelvi fejlesztésekből pedig azt<br>
>> kell megnézni, hogy melyik vehető át a platform széttúrása nélkül. :)<br>
>><br>
>> De előbb-utóbb át kell venni a nyelvi elemeket, mert a Lambda miatt nagyon<br>
>> sok library ki fog jönni Java8+ kompatibilitási igénnyel, s Android-on az<br>
>> eseményvezéreltség miatt nagyon sokat javítanak a kód áttekinthetőségén és<br>
>> minőségén a Lambda.<br>
>><br>
>> Bye,<br>
>> Auth Gábor<br>
>><br>
>><br>
>> _______________________________________________<br>
>> Javalist mailing list<br>
>> <a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
>> <a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> Javalist mailing list<br>
> <a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
> <a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
><br>
_______________________________________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
</div></div></blockquote></div><br></div>
_______________________________________________<br>Javalist mailing list<br><a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br><a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
</blockquote></div><br></div></div></div></div><br>_______________________________________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
<br></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/mailman/listinfo/javalist</a><br>
<br></blockquote></div><br></div>