Ya hicimos post sobre Java 8 y los steam o las interfaces funcionales. Ahora vamos a intentar hacer uno sobre lambda y su asociación con las intefaces funcioanles.
Cuando hablamos de Lambda, hablamos de expresiones lambda, generadas a través del operador '->'. Estas expresiones lambda a fin de cuenta nos permiten crear funciones anónimas. Y estas funciones a la vez, generan o instancian lo que ya conocemos como interfaces funcionales.
En base a la expresión lambda, generaremos uno u otro tipo de interfaz funcional, pudiendo ser interfaces de características diferentes. Hasta tal punto que en Java 8 se han creado distintos tipo de interfaces funcionales, las cuales puedes ver aquí y vamos a explicar una a una.
Cuando hablamos de Lambda, hablamos de expresiones lambda, generadas a través del operador '->'. Estas expresiones lambda a fin de cuenta nos permiten crear funciones anónimas. Y estas funciones a la vez, generan o instancian lo que ya conocemos como interfaces funcionales.
En base a la expresión lambda, generaremos uno u otro tipo de interfaz funcional, pudiendo ser interfaces de características diferentes. Hasta tal punto que en Java 8 se han creado distintos tipo de interfaces funcionales, las cuales puedes ver aquí y vamos a explicar una a una.
- Consumer
Consumer<String> lambdaObject = (x) -> System.out.println(x.toLowerCase()); lambdaObject.accept("LAMBDA"); //produces : lambda BiConsumer<String, String> lambdaBiConsumer = (x,y) -> System.out.println(x.toLowerCase() + " " + y.toUpperCase()); lambdaBiConsumer.accept("LAMBDA","lambda"); //produces : lambda, LAMBDA DoubleConsumer lambdaDoubleConsumer = (x) -> System.out.println(Double.toString(x)); lambdaDoubleConsumer.accept(Double.MIN_VALUE); //produces : 4.9E-324
- Functions
Function<Double, String> lambdaFunction = (d) -> Double.toString(d); System.out.println(lambdaFunction.apply(1.2)); //produces : 1.2
- Provider
Predicate<String> lambdaPredicate = (s) -> "Lambda".equals(s); System.out.println(lambdaPredicate.test("Lambda")); // produces : true
- Supplier
Supplier<String> lambdaSupplier = () -> Double.toString(1.1); System.out.println(lambdaSupplier.get()); //produces : 1.1
Con todo esto ya hemos visto un ejemplo básico de que es lambda, para que se usa y que produce. Más adelante haremos otro post con ejemplos más prácticos que le saquen el parte a las expresiones lambda.
No hay comentarios:
Publicar un comentario