Dark_Sage Δημοσ. 2 Ιουνίου 2016 Δημοσ. 2 Ιουνίου 2016 Γεια σε ολους, Δεν ειχα δώσει ιδιαίτερη εμφαση στα Lambdas απο Java 8 αλλα βλεπω παιζουν ολο και πιο πολύ. Εχετε να προτείνετε κανα crash tutorial ή καποια resources που να τα εξηγουν καλα? Διαβασα απο το site oracle αλλα δεν βοηθησε. Για παραδειγμα, γιατι μπορουν και "μικραίνουν" anonymous classes? Αυτο δεν πιανω κυρίως. Την υλοποιηση την καταλαβαινω οταν το κοιτάζω, αλλά γιατι και πως το κάνουν?
παπι Δημοσ. 3 Ιουνίου 2016 Δημοσ. 3 Ιουνίου 2016 (επεξεργασμένο) Έλα ρε, έβαλαν επιτέλους λ. Τιες, syntactic sugar είναι, δεν έχει να κάνει με το πώς γίνεται, έχει να κάνει με το γιατί γίνεται. Προφανώς γίνεται για πιο κατανοητό αποτέλεσμα και λιγότερα repeats. Πχ Το x-> x.name Είναι ένας transformer, το οποίο παίρνει χ και επιστρέφει x.name. Αυτό για να το κάνεις χωρίς λ, θα πρέπει να κάνεις drive κάποιο interface, δηλαδή ολόκληρο αρχείο. Φυσικά η κλάση που θα φτιαξεις θα είναι μόνο για ένα type και μόνο για ένα select (βλ. name) , αν θες να κάνεις select από το χ το age πχ, θα πρέπει να φτιαξεις άλλη κλάση. Ε αυτό κάνει το λ, φτιάχνει κλάσεις. Επεξ/σία 3 Ιουνίου 2016 από παπι
elefas Δημοσ. 3 Ιουνίου 2016 Δημοσ. 3 Ιουνίου 2016 Γράψε στο youtube search: venkat subramaniam java 8 και απόλαυσε τον Ινδό γκουρού να σου φυτεύει γνώση στο κεφάλι!!! 1
ZAKKWYLDE Δημοσ. 4 Ιουνίου 2016 Δημοσ. 4 Ιουνίου 2016 Έλα ρε, έβαλαν επιτέλους λ. Τιες, syntactic sugar είναι, δεν έχει να κάνει με το πώς γίνεται, έχει να κάνει με το γιατί γίνεται. Προφανώς γίνεται για πιο κατανοητό αποτέλεσμα και λιγότερα repeats. Πχ Το x-> x.name Είναι ένας transformer, το οποίο παίρνει χ και επιστρέφει x.name. Αυτό για να το κάνεις χωρίς λ, θα πρέπει να κάνεις drive κάποιο interface, δηλαδή ολόκληρο αρχείο. Φυσικά η κλάση που θα φτιαξεις θα είναι μόνο για ένα type και μόνο για ένα select (βλ. name) , αν θες να κάνεις select από το χ το age πχ, θα πρέπει να φτιαξεις άλλη κλάση. Ε αυτό κάνει το λ, φτιάχνει κλάσεις. Δεν ισχύει αυτό, μπορούσες και πρίν να φτιάξεις generic interfaces π.χ. Function<T, R>. Αυτά τώρα είναι τα λεγόμενα Functional Interfaces (Runnable, Consumer<T>, Supplier<T>, Function<T,R>, BiFunction<T,U,R>). Ούτε είναι μόνο syntactic sugar για να αποφεύγεις να γράφεις anonymous inner class. Τα Lambda expressions ουσιαστικά βγήκαν για να υποστηρίξουν το Stream API το οποίο είναι πανίσχυρο και πλέον μπορείς να έχεις FRM αντί για ORM. Δηλαδή π.χ. στο Spring Data κάνεις το DB query σου κανονικά με filter, map, reduce.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα