Breve explicación
La función UnaryOperator<T>
es una interfaz funcional en Java que acepta un solo argumento de tipo T
y devuelve un resultado del mismo tipo T
. Es una especialización de Function<T, T>
. El método funcional de UnaryOperator
es apply(T t)
.
Ejemplo 1: Versión completa del cuerpo de la función Lambda
Java
package org.example.tinajero;
import java.util.function.UnaryOperator;
public class LambdaUnaryOperatorExample {
public static void main(String[] args) {
/*
* 🛠️ UnaryOperator
* 💡 Recibe un valor de tipo T y retorna un valor del mismo tipo.
*/
// Creamos un UnaryOperator que multiplica un número entero por 2
UnaryOperator<Integer> multiplyByTwo = (Integer n) -> {
// Cuerpo completo: retorna el valor multiplicado por 2
return n * 2;
};
// Usamos el UnaryOperator para multiplicar 5 por 2
System.out.println("5 multiplicado por 2: " + multiplyByTwo.apply(5));
// Creamos otro UnaryOperator que convierte una cadena a mayúsculas
UnaryOperator<String> toUpperCase = (String s) -> {
// Retorna la cadena en mayúsculas
return s.toUpperCase();
};
// Aplicamos el UnaryOperator para convertir "java" a mayúsculas
System.out.println("'java' en mayúsculas: " + toUpperCase.apply("java"));
}
}
Ejemplo 2: Reducción de la expresión Lambda
Java
package org.example.tinajero;
import java.util.function.UnaryOperator;
public class LambdaUnaryOperatorExampleSimplified {
public static void main(String[] args) {
/*
* 🛠️ UnaryOperator
* 💡 Recibe un valor de tipo T y retorna un valor del mismo tipo.
*/
// Versión simplificada del UnaryOperator que multiplica un número por 2
UnaryOperator<Integer> multiplyByTwo = n -> n * 2;
// Ejecutamos el UnaryOperator para multiplicar 10 por 2
System.out.println("10 multiplicado por 2: " + multiplyByTwo.apply(10));
// Versión simplificada del UnaryOperator que convierte una cadena a mayúsculas
UnaryOperator<String> toUpperCase = s -> s.toUpperCase();
// Usamos el UnaryOperator para convertir "lambda" a mayúsculas
System.out.println("'lambda' en mayúsculas: " + toUpperCase.apply("lambda"));
}
}