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

Ends in 05h 23m 49s

Java8 – Las interfaces funcionales de la versión

En el articulo anterior, estuvimos hablando bastante de las interfaces funcionales, y, anteriormente, hablamos de las lambdas, y ya en aquel momento, hicimos hincapié de la necesidad de una para las otras.

En este articulo, vamos a empezar a ver una colección bastante numerosa de interfaces funcionales proporcionadas en Java8, para simplificarnos la vida y permitirnos crear funciones mas o menos complejas utilizando lambdas

Hay casuísticas estandars a la hora de escribir código, y es, basado en esa casuísticas, que Java8 nos proporciona una colección de interfaces que nos permite implementar funciones basadas en lambdas con muy poco esfuerzo, y, que a la vez permiten que nuestros programas sean mucho mas claros y mas fáciles de seguir.

No nos debemos olvidar que nosotros podemos crear nuestras propias interfaces, e incluso, podemos heredar de estas, y ampliarla lo que necesitemos, no, eso sigue siendo importante, y la colección que vemos ahora, lo único que hacen es quitarnos el trabajo de escribirlas nosotros.

A continuación, os dejo la lista de esas interfaces nuevas, pensadas para ahorrar trabajo.

InterfaceEmpleabilidad
FunctionRecibe un objeto y devuelve otro. Tanto la entrada como la salida pueden ser del mismo tipo o de tipos distintos
Se implementa el método «S apply(T t)»
Con respuesta genérica, pero entrada definida para tipos primitivos, disponemos de
IntFunction
DoubleFunction
LongFunction
Con entrada genérica, pero fijando la salida a tipos genéricos
ToDoubleFunction
ToIntFunction
ToLongFunction
Fijando entrada y salida, para utilizar únicamente tipos genéricos, tenemos
DoubleToIntFunction
DoubleToLongFunction
IntToDoubleFunction
IntToLongFunction
LongToDoubleFunction
LongToIntFunction
BiFunctionSemejante a Function, pero recibe dos objetos y devuelve 1
En la version genérica,
– debemos definir los tres tipos de objeto. Cualquier combinación es posible
– Se ha de implementar el método «U apply(T t, S s)»
Con entrada genérica, pero fijando la salida tenemos
ToDoubleBiFunction
ToIntBiFunction
ToLongBiFunction
PredicateRecibe un argumento de cualquier tipo, y devuelve un booleano
Se ha de implementar el método «boolean test(T t)»
Para los tipos primitivos, disponemos de las interfaces
IntPredicate
LongPredicate
DoublePredicate
BiPredicateRecibe dos argumento de cualquier tipo, y devuelve un booleano
Se ha de implementar el método «boolean test(T t, S s)»
ConsumerRecibe un argumento, de cualquier tipo, y no devuelve nada
Se ha de implementar el método «void accept(T t)»
Para los tipos primitivos, disponemos de las interfaces
IntConsumer
LongConsumer
DoubleConsumer
BiConsumerRecibe dos argumento, de cualquier tipo, y no devuelve nada
Se ha de implementar el método «void accept(T t, S s)»
Hay un conjunto de interfaces con dos entradas, una de objeto a definir, y la otra de tipo primitivo, que son:
ObjIntConsumer
ObjLongConsumer
ObjDoubleConsumer
SupplierNo recibe argumento y retorna un objeto genérico
Se ha de implementar el método «S get()»
Hay un conjunto de interfaces pensadas para trabajar con tipos primitivos que son:
BooleanSupplier
IntSupplier
LongSupplier
DoubleSupplier
UnaryOperatorSe trata de la especialización de Function, cuando el resultado es del mismo tipo que el argumento pasado
Se implementa el método «T apply(T t)»
IntUnaryOperator
LongUnaryOperator
DoubleUnaryOperator
BinaryOperatorSe trata de la especialización de BiFunction, cuando tanto el resultado, como los dos argumentos pasados, son todos del mismo tipo
IntBinaryOperator
LongBinaruOperator
DoubleBinaryOperator

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.117.105.128
Proxy: 18.117.105.128
Remote host: ec2-18-117-105-128.us-east-2.compute.amazonaws.com
Remote port: 58150
** 18.117.105.128, 172.70.126.17