Le UnaryOperator est une interface fonctionnelle ayant un seul argument T en entrée et retourne un objet de type T. Sa définition est la suivante :
@FunctionalInterface
public interface UnaryOperator extends Function {
}
Cette interface fonctionnelle étend l'interface function :
@FunctionalInterface
public interface Function {
R apply(T t);
}
Dans cet exemple, nous allons voir que Function
final Function func = x -> x + 4;
final Integer result = func.apply(2);
System.out.println(result); // 6
final UnaryOperator func2 = x -> x + 4;
final Integer result2 = func2.apply(2);
System.out.println(result2); // 6
public static void main(final String[] args) {
final List list = Arrays.asList("Alex", "Claire", "Angel");
final List result = UnaryOperatorTest.utilisateur(list, x -> "Utilisateur :" + x);
System.out.println(result); // [Utilisateur :Alex, Utilisateur :Claire, Utilisateur :Angel]
}
public static List utilisateur(final List list, final UnaryOperator uo) {
final List result = new ArrayList<>();
list.forEach(x -> result.add(uo.apply(x)));
return result;
}
public static void main(final String[] args) {
final List list = Arrays.asList("Alex", "Claire", "Angel");
final List result = UnaryOperatorTest.utilisateur(list, x -> "[Utilisateur :" + x, x -> x + "]");
System.out.println(result); // [[Utilisateur :Alex], [Utilisateur :Claire], [Utilisateur :Angel]]
}
public static List utilisateur(final List list, final UnaryOperator uo, final UnaryOperator uo2) {
final List result = new ArrayList<>();
list.forEach(x -> result.add(uo.andThen(uo2).apply(x)));
return result;
}