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:
En un post anterior vimos como utilizar GSON para serializar un objeto java en JSON, en esta oportunidad se vera el proc[...]
Autenticación en una pagina web es el proceso de confirmar que un usuario es quien dice ser, asi de simple. En el siguie[...]
Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la inter[...]
Sourcetrail el explorador de código fuente de los lenguaje C, C ++, Java y Python se pasa al Software Libre y desde ahor[...]
Un TextView autocompletado nos facilita el ingreso de información en aplicaciones móviles ya que te muestra posibles opc[...]
Servicio Web Un servicio web (en inglés, Web Service o Web services) es una tecnología que utiliza un conjunto de protoc[...]