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:

  1. Consumidores
  2. Proveedores
  3. Funciones
  4. 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