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.