El uso de Java Stream forEach poco a poco se va haciendo hueco entre los desarrolladores que utilizan programación funcional. El problema fundamentalmente que existe con el método forEach es que estamos muy acostumbrados a usar un bucle clásico forEach y nos funciona bastante bien .Así que da un poco de pereza cambiarlo . ¿ […]
Java 8 interface static methods y reutilizacion
El uso de Java 8 interface static methods genera muchas dudas entre los desarrolladores. ¿Para qué podemos necesitar usar métodos estáticos a nivel de interfaces?. La respuesta tiene que ver con el concepto de reutilización de código y agrupamiento de responsabilidades . Vamos a construir como siempre un ejemplo que nos ayude a clarificar las […]
Java 8 Optional y NullPointerExceptions
El uso de Java 8 Optional es cada día más común para todos los que desarrollamos sobre Java 8. ¿Para qué sirve un tipo Optional? . Su uso esta centrado en eliminar muchos de los problemas que ocurren con el manejo de excepciones de tipo NullPointerException . Vamos a ver un ejemplo sencillo. Supongamos que […]
Java Stream Collectors y su uso
Cuanto más usamos los streams más usamos los diferentes Java Stream Collectors para transformar estos. Vamos a ver cuales son las diferentes opciones que Java soporta para transformar un stream a otro tipo de estructura. Para ello nos vamos a crear la clase Libro y usarla en diferentes ejemplos. Acabamos de instanciar tres objetos ,vamos […]
Java Functional Interface
¿Qué es un Java Functional Interface? . Java8 incluye muchas novedades y entra ellas destacan las expresiones lambda. Recordemos que una expresión lambda define el comportamiento de una función. Podemos usar la expresión lambda en nuestro código Java : Sin embargo ella sola no compila ya que necesitamos igualarla a una variable lo que no […]
Introducción a RxJava y sus observables
RxJava es una de las librerías que más interés esta generando dentro de la comunidad. Esto es debido a que cada día nos encontramos con más sistemas que funcionan de forma asíncrona y que necesitan poder gestionar flujos de información complejos. Para entender como funciona RxJava necesitamos entender como funcionan los Observables que son los […]
Java Lambda reduce y wrappers
Java Lambda reduce es una de las operaciones más utilizadas cuanto trabajamos con colecciones de objetos y expresiones lambda. Reduce sirve para convertir un Array de elementos en un único elemento y se usa por ejemplo para calcular la suma de n términos. Veamos un ejemplo sin expresiones lambda: El resultado por pantalla será : […]
Utilizando Java High Order Functions
Java High Order Functions es uno de los conceptos difíciles de entender del nuevo universo de las expresiones Lambda . Una High Order Function es una función que recibe como parámetro otra función o bien devuelve una función . Parece algo cuando menos extraño pero a veces puede ser muy útil, vamos a ver un ejemplo. […]







