Expresii Java și lambda, blog-ul programatorului java

Ca o regulă, încerc să aștept lansarea, dar acum există atât de multe vorbe despre expresiile lambda în noua Java că eu, vechii Scala-fanatici și programarea funcțională, am vrut să joc cu noile caracteristici lingvistice. Dacă te uiți la toate inovațiile opta Java de la Scala programator, atunci întreaga persoană le-am tratat favorabil, deoarece această situație poate duce la o reducere a diferenței dintre puterea de sintaxă Scala și curent (a șaptea), versiunea de Java ca limbaj de programare. Deși, bineînțeles, chiar și cu toate inovațiile celor opt, Java va rămâne mult în urma Scalei.







JDK cu "Proiectul Lambda" poate fi descărcat de pe pagina oficială.
De asemenea, în construirea actuală a JDK 8 (la momentul acestei scrieri) lambda există deja, dar API-ul cu colecțiile nu este încă finalizat.

Scopul acestui articol nu este de a scrie un tutorial despre noile caracteristici Java, cred că această lucrare ar trebui făcută de tipii de la Oracle. Aici am vrut să fac niște mici note pentru mine în viitor, împreună cu câteva mici exemple de cod la care aș vrea să revin după lansarea oficială a JDK 8.







În sensul zilnic, pur utilitar, în cadrul acestei lambda (sau expresii lambda) notorii, mulți programatori înseamnă în mod obișnuit funcții anonime obișnuite (desigur că aceasta nu este o definiție strictă). Și prin funcție ne referim la un obiect de primă clasă. Acesta poate fi trecut ca obiect la argumentele metodei, atribuiți o variabilă etc. Din punctul de vedere al utilizatorului final (în cazul nostru, programatorul), obținem o modalitate convenabilă de a reduce numărul de linii de cod, fără o pierdere puternică a lizibilității acestuia.

Unul dintre cele mai comune exemple de pe Internet, care demonstrează avantajele utilizării lambda, este înlocuirea clasei vechi vechi anonime.
Compara. Aceasta este o nouă opțiune:

String arr [] =; Arrays.parallelSort (arr, (x, y) -> x.compareToIgnoreCase (y));

Functionalistii iubesc doar astfel de metode multi-filetate. Din păcate, pe testele mele din versiunea JDK 8 folosită de la utilizarea paralelismului, beneficiul a fost doar pe date primitive (de exemplu, când sortează matrice de inți). Pe arrays cu obiectele nu a fost nici o utilizare, dar la urma urmei, eliberarea numai după câteva luni, așa că acum nu există teste de viteză serioase pentru a efectua incorect.

Cred că mulți vor fi de acord că cei opt nu vor domina în curând pe servere și nu vor fi utilizați în operațiuni industriale, deoarece există un nivel destul de mare de programatori Java în special conservatori. Cu toate acestea, funcționalitatea este acum în tendința programatorului mondial, deci Java 8 este cu siguranță interesant și are sens să-și petreacă mai mult timp în studiul său.







Articole similare

Trimiteți-le prietenilor: