Junior
Τι είναι οι εκφράσεις lambda στη Java;
sobes.tech AI
Απάντηση από AI
Η έκφραση lambda στη Java είναι μια ανώνυμη (χωρίς όνομα) λειτουργία που υλοποιεί μια λειτουργική διεπαφή.
Βασικά χαρακτηριστικά:
- Δεν έχουν όνομα.
- Μπορούν να έχουν παραμέτρους.
- Το σώμα μπορεί να αποτελείται από μια μόνο έκφραση ή ένα μπλοκ εντολών.
- Ο τύπος της επιστρεφόμενης τιμής δεν ορίζεται (αποδίδεται αυτόματα).
- Είναι απαραίτητα για τον λειτουργικό προγραμματισμό και την εργασία με ροές (Streams API).
Σύνταξη:
// Χωρίς παραμέτρους
() -> { // σώμα }
// Με μία παράμετρο (ο τύπος μπορεί να παραλειφθεί)
param -> έκφραση
// Με πολλαπλές παραμέτρους (ο τύπος μπορεί να παραλειφθεί, απαιτούνται παρενθέσεις)
(param1, param2) -> { // σώμα }
Παράδειγμα χρήσης:
// Διεπαφή λειτουργικού (ενσωματωμένη)
import java.util.function.Consumer;
// Υλοποίηση με lambda
Consumer<String> εκτυπωτής = s -> System.out.println(s);
εκτυπωτής.accept("Γειά σου κόσμε!");
// Χρήση σε μια μέθοδο που δέχεται μια λειτουργική διεπαφή
import java.util.Arrays;
import java.util.List;
List<Integer> αριθμοί = Arrays.asList(1, 2, 3, 4, 5);
αριθμοί.forEach(n -> System.out.println(n)); // forEach δέχεται Consumer
Πλεονεκτήματα:
- Πιο συνοπτικός κώδικας.
- Βελτιωμένη αναγνωσιμότητα (σε απλές περιπτώσεις).
- Δυνατότητα χρήσης λειτουργικού προγραμματισμού.
- Απλοποιεί τη δουλειά με συλλογές και πολυνηματική επεξεργασία.
Περιορισμοί:
- Οι εμφωλευμένες ή μακρές lambdas μπορεί να είναι δύσκολες στην κατανόηση.
- Δεν έχουν κατάσταση (δεν μπορούν να έχουν πεδία στιγμής).