Expressions lambda en Java8 : un remplacement des classes anonymes ?
Avec l'introduction des expressions lambda en Java8, la question se pose : avoir des expressions anonymes les classes deviennent obsolètes ?
Expressions Lambda : Un Solution
Les expressions Lambda fournissent une syntaxe compacte et facile à lire pour définir des interfaces à méthode unique. Comme l'illustre la méthode de tri de la Collection, les expressions lambda éliminent le besoin d'implémentations anonymes de Comparator :
Collections.sort(personList, new Comparator<Person>() { public int compare(Person p1, Person p2){ return p1.firstName.compareTo(p2.firstName); } });
devient :
Collections.sort(personList, (Person p1, Person p2) -> p1.firstName.compareTo(p2.firstName));
Quand les expressions Lambda échouent
Malgré leur simplicité, les expressions lambda ont des limites. Ils ne peuvent être utilisés qu'avec des interfaces à méthode unique et ne peuvent pas fournir d'état ni définir de méthodes supplémentaires. Cela signifie que les classes anonymes restent nécessaires dans les situations où :
Avantages des expressions Lambda
Dans leur portée, les expressions lambda offrent des avantages par rapport aux classes anonymes :
Conclusion
Les expressions Lambda n'ont pas remplacé les classes anonymes en Java8. Bien qu'elles offrent un raccourci pratique pour les fonctions à méthode unique, les classes anonymes restent essentielles dans les cas où un état, un héritage ou des méthodes supplémentaires sont requis. Les deux fonctionnalités coexistent pour fournir des solutions flexibles et appropriées pour différents scénarios de programmation Java.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!