Sobes.tech
Junior

Τι είναι οι εκφράσεις lambda στη Java;

sobes.tech AI

Απάντηση από AI

Η έκφραση lambda στη Java είναι ένας σύντομος τρόπος αναπαράστασης ανώνυμων συναρτήσεων (συναρτήσεις χωρίς όνομα). Χρησιμοποιούνται για τη δημιουργία στιγμιότυπων λειτουργικών διεπαφών.

Βασικά στοιχεία:

  • Λίστα παραμέτρων: Τα παρένθεση () περιέχουν τη λίστα παραμέτρων. Αν δεν υπάρχουν παράμετροι, χρησιμοποιούνται κενά παρένθεση.
  • Βέλος ->: Διαχωρίζει τη λίστα παραμέτρων από το σώμα της έκφρασης lambda.
  • Σώμα: Μπορεί να είναι μια μόνο έκφραση ή ένα μπλοκ κώδικα σε αγκύλες {}.

Παράδειγμα χωρίς παραμέτρους:

// Λειτουργική διεπαφή
@FunctionalInterface
interface Greeting {
    void sayHello();
}

// Χρήση της έκφρασης lambda
Greeting greeting = () -> System.out.println("Hello, World!");

Παράδειγμα με παραμέτρους:

// Λειτουργική διεπαφή
@FunctionalInterface
interface MathOperation {
    int operate(int a, int b);
}

// Χρήση της έκφρασης lambda
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> {
    return a - b;
};

Πλεονεκτήματα:

  • Συντομία: Μειώνει τον όγκο του boilerplate κώδικα.
  • Άνεση: Χρησιμοποιείται μαζί με το API Stream για επεξεργασία συλλογών.
  • Λειτουργικός προγραμματισμός: Υποστηρίζει στοιχεία λειτουργικού προγραμματισμού στη Java.

Περιορισμοί:

  • Μπορούν να χρησιμοποιηθούν μόνο με λειτουργικές διεπαφές (διεπαφές με μία μόνο αφηρημένη μέθοδο).
  • Δεν μπορούν να έχουν κατάσταση (δηλαδή, δεν μπορούν να αλλάξουν μεταβλητές εκτός του πλαισίου τους, αν αυτές οι μεταβλητές δεν δηλώνονται ρητά ως final ή αποτελεσματικά final).

Οι εκφράσεις lambda εισήχθησαν στη Java 8.