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 usar la herramienta XJC del JDK para generar clases java desde esquemas XSD (XML Sch[...]
En este post construiremos un Servicio Web en Java bajo el estandar REST (Representational State Transfer), el cual hace[...]
En este tutorial crearemos una sencilla aplicación para android que nos permitirá subir una imagen a un servidor web. La[...]
Los JavaBeans son clases que encapsulan objetos en un solo objeto (beans). Son fáciles de crear y pueden contener muchos[...]
En posts anteriores hablamos sobre los metadatos y el porque son importantes en la Seguridad Informática, vimos el manej[...]
En este post vamos a crear una aplicación sencilla para conectar C# con MySQL. Manos a la obra 🙂 Necesitamos – Con[...]