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:
Kotlin es un lenguaje de programación de tipado estático que corre sobre la máquina virtual de Java y que también puede[...]
En este post construiremos un sencillo sistema Cliente/Servidor en lenguaje Java, el sistema consistirá básicamente en u[...]
En un post anterior se vio como agregar un código DataMatrix en reportes con iReport Designer sin embargo actualmente el[...]
En este tutorial conoceremos lo que es el uso de BitmapFont en LibGDX y algún uso que le podemos dar como crear un menú,[...]
Realizar pruebas sobre nuestro código nos permiten comprobar su correcto funcionamiento e integración con otros módulos[...]
Hola, en este oportunidad dejo a disposición un formulario de logueo que se me ocurrió de repente creo inspirado en las[...]