Logo: Marc Harnist

N° 383 - Lambdas en Java : une fausse bonne idée?
 - Le 13/05/2019 Catégorie: java


Avant Java 8, il n’existait que deux types de références, des valeurs primitives (char, String... et des références vers des objets (String s = new String("Hello"). Dans d'autres langages par contre, il existe des références vers ce qu'on appelle des closures : des morceaux de codes anonymes. Jusqu'en Java 7, la seul façon d'avoir ce type de référence revenait a faire une classe anonyme comme vu précédemment. Depuis Java 8, les closures existent et s'appellent les lambdas. Le parallèles avec les classes/méthodes anonymes est volontaire car les deux se conçoivent de la même manière : elles peuvent prendre des arguments et retourne un résultat. Pour simplifier au maximum, une lambda est la redéfinition d'une méthode d'une interface fonctionnelle sans avoir à faire une classe anonyme, donc gain de ligne de code et de visibilité.



Exemple:



Dialoguer d = (s) -> System.out.println("Tu as dis : " + s);



d.parler("Bonjour");



Les lambdas doivent êtres concises, sinon le code ne sera pas plus lisible qu'avec une classe anonyme habituelle



Une fausse bonne idée?



Les lambdas doivent êtres concises, sinon le code ne sera pas plus lisible qu'avec une classe anonyme habituelle

elles doivent être simple à comprendre pour que le débogage reste trivial en cas de problème

Ce sont deux choses à avoir à l'esprit sous peine de complexifier votre travail au lieu de le simplifier.



Bref: c'est pas clair!