Il s'agit d'une interface fonctionnelle et peut donc être utilisée comme cible d'affectation pour une expression lambda ou une référence de méthode. La définition d'une Function est "R apply(T t)". L'interface Function a un seul argument et un type de retour qui peut être différent.
@FunctionalInterface
public interface Function<T, R> {
R apply(T t);
}
Dans cette exemple nous alors utiliser le type String. Par conséquent, on aura donc Function<String>.
final Function<String, String> function = String::toUpperCase;
System.out.println(function.apply("alex")); // ALEX
final List<String> list = Arrays.asList("Alex", "Claire", "Angel");
final Function<String, String> function = String::toUpperCase;
list.stream().map(function).forEach(System.out::println);
// Output:
// ALEX
// CLAIRE
// ANGEL
La méthode andThen permet d'exécuter une commande après avoir exécuté la commande principale :
final List<String> list = Arrays.asList("Alex", "Claire", "Angel");
final Function<String, String> function = String::toUpperCase;
final Function<String, String> functionAndThen = function.andThen(x -> x.substring(2));
list.stream().map(functionAndThen).forEach(System.out::println);
// Output:
// EX
// AIRE
// GEL
LauLem.com - Conditions Générales d'Utilisation - Informations Légales - Charte relative aux cookies - Charte sur la protection des données personnelles - A propos