[Javalist] Java 8

Tamás Viktor viktor.tamas at gmail.com
2014. Már. 21., P, 06:00:44 CET


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


2014-03-20 21:11 GMT+01:00 Zsombor <gzsombor at gmail.com>:

> 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.
>  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
>
> public void sum (Collection<X> xs, (X) -> int func) {
>   int result = 0;
>   for (X x : xs) {
>     result += func.*apply*(x);
>   }
>   return result;
> }
>
> hanem muszáj ilyet:
>
> interface Summér<X> {
>   int szamol(X param);
> }
>
> public void sum(Collection<X> xs, Summér<X> func) {
>   int result = 0;
>   for (X x : xs) {
>     result += func.*szamol*(x);
>   }
>   return result;
> }
>
> S amikor hívjuk, akkor a fordító elég okos, hogy a megfelelő tipussá
> konvertálja ezt:
>  sum(strings, (String s) -> s.length());
>
>
> Vagy valamiről lemaradtam :)
>
>
>
> 2014-03-20 20:41 GMT+01:00 Peter Verhas <peter at verhas.com>:
>
> 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.
>>
>>   --
>> Dipl. Ing. Peter Verhas
>> peter at verhas.com
>> +41791542095
>> skype: verhas
>>
>>
>>
>>
>>
>>
>> On 2014.03.20., at 20:35, Zsombor <gzsombor at gmail.com> wrote:
>>
>> 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.
>>
>> Üdv
>>  Zs
>>
>>
>> 2014-03-20 19:44 GMT+01:00 Gábor Garami <gabor.garami at hron.me>:
>>
>>> Ha es amennyiben nem tartalmaz a kod olyan nyelvi elemeket, amiknek
>>> nincs korabbi JVM-beli megfelelojuk. Es a closure-t (lambda kifejezes,
>>> hivd ahogy akarod) eleg korulmenyes portolni kodszinten korabbi VM-re
>>> - ha lehet egyaltalan.
>>> Garami Gábor
>>> E-mail: gabor.garami at hron.me
>>> Tel: +36 20 235 9621
>>> MSN: hrgy at vipmail.hu
>>> Skype: hron84
>>>
>>>
>>> 2014-03-20 13:46 GMT+01:00 Peter Verhas <peter.verhas at gmail.com>:
>>> > Szerintem a Java 8-ban irt library is fordithato korábbival
>>> kompatibilis
>>> > JVM-re. Nem így van?
>>> >
>>> >
>>> > On Thu, Mar 20, 2014 at 11:48 AM, auth.gabor at javaforum.hu
>>> > <auth.gabor at javaforum.hu> wrote:
>>> >>
>>> >> Hi,
>>> >>
>>> >> > Szerintem soha. Hiszen a google nem akar fizetni semmit az
>>> Oraclenek a
>>> >> > javáért...
>>> >>
>>> >> Válasszuk (legalább ketté) a dolgot: a JVM fejlesztés nem érinti az
>>> >> Android-ot, mert teljesen más a VM, a nyelvi fejlesztésekből pedig azt
>>> >> kell megnézni, hogy melyik vehető át a platform széttúrása nélkül. :)
>>> >>
>>> >> De előbb-utóbb át kell venni a nyelvi elemeket, mert a Lambda miatt
>>> nagyon
>>> >> sok library ki fog jönni Java8+ kompatibilitási igénnyel, s
>>> Android-on az
>>> >> eseményvezéreltség miatt nagyon sokat javítanak a kód
>>> áttekinthetőségén és
>>> >> minőségén a Lambda.
>>> >>
>>> >> Bye,
>>> >> Auth Gábor
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> Javalist mailing list
>>> >> Javalist at lists.javaforum.hu
>>> >> http://lists.javaforum.hu/mailman/listinfo/javalist
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > Javalist mailing list
>>> > Javalist at lists.javaforum.hu
>>> > http://lists.javaforum.hu/mailman/listinfo/javalist
>>> >
>>> _______________________________________________
>>> Javalist mailing list
>>> Javalist at lists.javaforum.hu
>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>>
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>
>>
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>
>>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20140321/b9c93779/attachment.html>


További információk a(z) Javalist levelezőlistáról