Una Interface Funcional es una interface que contiene uno y solo un método abstracto aunque puede contener métodos por defecto y estáticos.
Método Abstracto: Un método abstracto es aquel que esta declarado pero no implementado. Es decir, es aquel método del cual se escribe su nombre, valor de retorno y parámetros de entrada, pero no su código.
Si bien podemos definir nuestras propias interfaces funcionales, java 8 trae pre definidos una gran variedad de interfaces en el paquete java.util.function los cuales podemos usar en cualquier momento.
Link Oracle : https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
Declaración de una Interface Funcional
A continuación un ejemplo de una Interface Funcional que lleva por nombre «MiInterface» e implementa un metod abstracto invertir:
@FunctionalInterface public interface MiInterface { String invertir(String palabra); }
Podemos destacar el uso de @FunctionalInterface esta anotación le permite al compilador realizar la validación de la interface, por ejemplo, si ponemos dos métodos abstractos, nos lanza la siguiente advertencia:
Implementación de la Interface Funcional
A continuación un ejemplo de como implementar la Interface Funcional de la forma antigua y con java 8 usando lambdas:
public class Main { public static void main(String[] args) { //Antigua forma MiInterface miInterface = new MiInterface() { @Override public String invertir(String palabra) { String result = ""; for (int i = palabra.length() - 1; i >= 0; i--) { result += palabra.charAt(i); } return result; } }; System.out.println(miInterface.invertir("supercalifragilístico")); //Con java 8 MiInterface miInterface2 = (String palabra) -> { String result = ""; for (int i = palabra.length() - 1; i >= 0; i--) { result += palabra.charAt(i); } return result; }; System.out.println(miInterface2.invertir("supercalifragilístico")); } }
Finalmente el resultado del código anterior:
El componente swing JLabel nos permite cargar una imagen con la propiedad setIcon, sin embargo la imagen no toma el tama[...]
Video Tutorial que muestra una de las maneras de utilizar y mostrar imagenes en iReport, pasando estas como parametros d[...]
Android hace uso de la base de datos SQLite para el manejo de registros en las aplicaciones. Según Santa Wikipedia defin[...]
Mangle es el lenguaje de programación de código abierto desarrollado por el gigante tecnológico Google presentado este a[...]
Comenzando este tutorial, primero necesitamos definir la «estructura» de nuestro proyecto. Haremos uso del IDE de Dreamw[...]
Operador de Complemento bit a bit unario Entre los operadores a nivel de bits de uso más común en java tenemos al operad[...]