L'usage des interfaces comme types fonctionnels introduit malgré tout une certaine lourdeur syntaxique lors de l'appel d'une fonction. Exemple:
1 2 3
| Function<String, String> laPuissanceDeLaFonc = String::toUpperCase;
System.out.println( laPuissanceDeLaFonc.apply("tion") ); // TION |
C'est le passage par cette méthode intermédiaire qui n'est pas trop naturel. (cf. argumentation détaillée sur
http://au.arena.free.fr/blog/index.p...fonctionnelles )
On aurait plutôt attendu qqch comme
laPuissanceDeLaFonc("tion") comme en CAML ou Scala par exemple. Mais bon... en contrepartie les méthodes par défaut des interfaces du package 'java.util.function' apportent des mécanismes intéressants comme des types composés (ex: méthodes
andThen ).
Partager