Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σε ολους,

 

Δεν ειχα δώσει ιδιαίτερη εμφαση στα Lambdas απο Java 8 αλλα βλεπω παιζουν ολο και πιο πολύ. 

Εχετε να προτείνετε κανα crash tutorial ή καποια resources που να τα εξηγουν καλα? Διαβασα απο το site oracle αλλα δεν βοηθησε.

 

Για παραδειγμα, γιατι μπορουν και "μικραίνουν" anonymous classes? Αυτο δεν πιανω κυρίως. Την υλοποιηση την καταλαβαινω οταν το κοιτάζω, αλλά γιατι και πως το κάνουν?

Δημοσ. (επεξεργασμένο)

Έλα ρε, έβαλαν επιτέλους λ.

Τιες, syntactic sugar είναι, δεν έχει να κάνει με το πώς γίνεται, έχει να κάνει με το γιατί γίνεται. Προφανώς γίνεται για πιο κατανοητό αποτέλεσμα και λιγότερα repeats.

 

Πχ

 

Το x-> x.name

Είναι ένας transformer, το οποίο παίρνει χ και επιστρέφει x.name. Αυτό για να το κάνεις χωρίς λ, θα πρέπει να κάνεις drive κάποιο interface, δηλαδή ολόκληρο αρχείο. Φυσικά η κλάση που θα φτιαξεις θα είναι μόνο για ένα type και μόνο για ένα select (βλ. name) , αν θες να κάνεις select από το χ το age πχ, θα πρέπει να φτιαξεις άλλη κλάση. Ε αυτό κάνει το λ, φτιάχνει κλάσεις.

Επεξ/σία από παπι
Δημοσ.

Γράψε στο youtube search: venkat subramaniam java 8

και απόλαυσε τον Ινδό γκουρού να σου φυτεύει γνώση στο κεφάλι!!!

  • Like 1
Δημοσ.

Έλα ρε, έβαλαν επιτέλους λ.

Τιες, 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.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...