Enjoy A New Student Discount All 55,000 Courses on sale for Only $12.99

Ends in 05h 23m 49s

Java8 – La interfaz funcional

Todos conocemos la definición de interfaz, y, en este caso, esa definición no cambia, aunque si se limita:

«Una interfaz funcional es una interfaz que solo tiene un método a resolver.«

Leer más: Java8 – La interfaz funcional

¿Sencillo?. Si, lo es, y además, nos ofrece un montón de posibilidades; pero ante todo, veamos de forma concreta como construirlo.

Para que Java considere que una interfaz es funcional, deberá encontrar en la misma un único método abstracto, solo eso; después podrá tener tantos métodos default como necesitemos. (Recordad que un método default en una interfaz, es aquel que NO es abstracto, ósea, tiene código)

Aparte, disponemos de una anotación que podemos utilizar. Su uso no es obligatorio, y lo único que hace es pedirle al compilador que compruebe que nuestra interfaz cumple con la normativa. Se trata de la anotación de clase:

@FunctionalInterface

Creando la interfaz

Vamos a crear una interfaz funcional pensada para recibir un objeto (de cualquier tipo) y hacer algo con él. por el nombre del método, igual es imprimirlo

Como ya dije, la linea 3 es opcional, y solo la pongo por aquello de las buenas costumbres

Para facilitar la flexibilidad, he utilizado genéricos, por lo que podre pasar a la función imprimir objetos de cualquier tipo

Hubiera podido añadir tantos métodos «default» como necesitara, pero quiero centrarme en la interfaz mínima

Utilizando una interfaz funcional

Para que veamos un ejemplo de utilización, podríamos escribir esta clase

Toda la magia, esta en la linea 7, que es donde estoy implementando la interfaz. Para lograrlo, no preciso nada mas que crear una variable del tipo de la interfaz, y, asignar a esa variable la lambda escogida para la implementación.

Destacar que mientras que en la linea 7, estoy implementando la interfaz, esta, no se EJECUTA hasta la linea 9, momento en que la llamo con el parámetro previsto

En este caso, recibe una String y la manda imprimir

Solo queda por aclarar, que en la variable «c» queda TODA la interfaz, y si esta tuviera métodos «default» los podría llamar tranquilamente desde esta variable

Comparando el uso sin lambdas

En este ejemplo concreto, la forma de solucionar el empleo de de esta interfaz, seria creando la clase que la implementa, por ejemplo

y luego, empleando esa clase, después de su instanciación, en el programa anterior

Ya no es solo el hecho de haber tenido que crear la clase, si no que el código de la clase, nos esta quedando oculto en este momento, y si necesitamos utilizar la interfaz con otros tipos, deberíamos ir creando las clases de implementación, para cada uno de ellos

Conclusión

La aportación que hace la version de Java8 a este entorno, es muy importante. especialmente para el uso de las lambdas, ya que va a ser una forma de implementar interfaces en una sola linea, sin requerir la parafernalia de crear una clase completa solo para su implementación.


Descubre más desde Recursos para formacion

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario

/*Si te ha gustado el artículo
no dudes en compartirlo*/

Facebook
Twitter
LinkedIn

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

Ver mi IP

Ver ip de mi máquina
tipo valor
Ip: 18.97.14.82
Proxy: 18.97.14.82
Remote host: 18-97-14-82.crawl.commoncrawl.org
Remote port: 35428
** 18.97.14.82, 172.71.223.101