Tipos Expresiones Lambda - Tensho97/Aprende-a-Aprender GitHub Wiki
Las expresiones lambda puede clasificarse de la siguiente manera, muy relacionado con las categorías de interfaces funcionales:
- Consumidores
- Proveedores
- Funciones
- Predicados
Consumidores
Se trata de aquellas expresiones lambda que aceptan un solo valor y no devuelven valor alguno.
String message -> System.out.println(message);
Las expresiones BiConsumidoras, un caso especial de las expresiones consumidoras, son aquellas que toman dos valores como parámetro y no devuelven resultado.
(String key, String value) -> System.out.println("Key: %s, value: %s%n", key, value);
Proveedores
En este caso se trata de expresiones que no tienen parámetros pero devuelven un resultado.
() -> return createRandomInteger()
Funciones
Aquellas expresiones que aceptan un argumento y devuelven un valor como resultado y cuyos tipos no tienen porque ser iguales.
Order persistedOrder -> persistedOrder.getIdientifier();
Las BiFunciones son aquellas expresiones de tipo función que aceptan dos argumentos y devuelven un resultado.
(Address address, String name) -> new Person(name, address);
Operadores Unarios
Igual que en el caso de los Operadores Unarios, se trata de un caso especial de funciones en las que los dos argumentos y el resultado son del mismo tipo.
(String message, String anotherMesssage) -> message.concat(anotherMessage);
Predicados
Se trata de expresiones que aceptan un parámetro y devuelven un valor lógico.
String message -> message.length > 50
Como en los casos anteriores, se pueden tener BiPredicados, predicados que en lugar de tener un parámetro, tienen dos.
(path, attr) -> String.valueOf(path).endsWith(".js") && attr.size() > 1024
Autor: Richard