Sobes.tech
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 μπορεί να είναι δύσκολες στην κατανόηση.
  • Δεν έχουν κατάσταση (δεν μπορούν να έχουν πεδία στιγμής).