En la anterior entrega vimos lo que son las expresiones lambda . En esta ocasión veremos las Functional Interfaces . Una Functional Interface es una interfaz Java que contiene un solo método abstracto. Esto garantiza que se pueda usar con expresiones lambda. ¿Cómo definimos una Functional Interface (interface funcional)? Con la anotación @FunctionalInterface un ejemplo sería este bloque: @FunctionalInterface interface MyInterfaceFuncional { void hacerAlgo (); } Como vimos anteriormente existen cuatro principales: Consumer: Puede o no recibir algún valor y no devolver nada. Function: Puede tomar dos valores de distinto tipo y devolver un valor en específico. Predicate: Puede tomar valores y devolver un valor booleano true o false. Supplier: No recibe valores, pero devuelve un valor. Consumer. @FunctionalInterface interface Consumer < T > { void accept (T t); } Function. @FunctionalInterface interface Func...
Hoy hablaremos de una característica fundamental del lenguaje Java que apareció desde la versión 8: las expresiones lambda . Las cuales no son otra cosa que funciones que no necesitan pertenecer a alguna clase previamente definida , es decir, son anónimas. Características: Vienen de la programación funcional. Son funciones anónimas. Se escriben en línea. Pueden o no recibir cero o más argumentos. Pueden o no retornar algún valor. Pueden consumir métodos de otras clases y objetos. Pueden pasar como argumentos en los métodos. Solo pueden acceder a variables del ámbito al que pertenecen. La sintaxis básica es la siguiente: () => {cuerpo - lambda} (param) => {cuerpo - lambda} (param1, param2) => {cuerpo - lambda} (param1, param2, paramN) => {cuerpo - lambda} Miremos unos ejemplos: Sin parámetros: () -> System. out . println ( "Hola desde una lambda sin parámetros" ); Con un parámetro: Predicate < Integer > esPar...