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

Pruebas instrumentadas con Espresso

Espresso es un framework de testing propiedad de Google que está dirigido a desarrolladores que creen que las pruebas au[...]

JToggleButton y base de datos

En este tutorial veremos una forma de trabajar con el swing  JToggleButton y una base de datos para dar respuesta a una[...]

Generar clases desde Esquemas XSD

XJC es una herramienta de linea de comandos del compilador de esquemas de JAXB que se puede utilizar para convertir un e[...]

Ejemplo de uso del Generador de Código de MyBatis

MyBatis es un framework de persistencia Java que se encarga de mapear sentencias SQL y procedimientos almacenados a part[...]

Convierte tus fotos al estilo Ghibli gratis y fácil: Guia paso a paso

Primero que nada Studio Ghibli es un estudio de animación japonés fundado en 1985 por Hayao Miyazaki, Isao Takahata y To[...]

Crear web multi-lenguaje con php

En este tutorial realizaremos un proyecto web de un «sitio multi lenguaje» o «web multi idiomas» como prefieran llamarlo[...]