Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / Interfaces Funcionales

Interfaces Funcionales

Por jc mouse viernes, enero 5, 2018

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:

interface error

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:

superfragialgospinoseque

 

Tags

Artículos similares

Dimask: La mascara de la Belleza (Descargar)

La Belleza está en la Simetría ¿Qué es lo que nos hace considerar un rostro bello? ¿Está influenciado nuestro criterio p[...]

Truco para Instagram

Instagram es una red social y aplicación para subir fotos y videos. Sus usuarios también pueden aplicar efectos fotográf[...]

Cifrado francmasón PigPen

El cifrado francmasón es un cifrado por sustitución simple que cambia las letras por símbolos. Sin embargo, el uso de sí[...]

Configurar JavaBeans como DataSource en iReports

Los JavaBeans son clases que encapsulan objetos en un solo objeto (beans). Son fáciles de crear y pueden contener muchos[...]

SQLite: Encriptación de datos

SQLite es un sistema de gestión de bases de datos relacional,  escrita en C, si se desea hacer uso de encriptación con S[...]

Agregar soporte para JNLP en servidor Apache

Java Network Launching Protocol (JNLP) es una especificación usada por Java Web Start. Esta especificación, permite tene[...]