Ir al contenido principal

Entradas

Java Tip 25: Métodos default & static en interfaces

En está ocasión hablaremos de: Métodos default. Métodos static. Ambas son características relativamente nuevas en Java (a partir de la versión 8). Y lo enriquecen y obligan al programador a optimizar su código. Métodos default Los métodos default fueron introducidos en Java 8. Éstos permiten tener métodos implementados en las interfaces. Ejemplo 1. Definir dos interfaces (Imprimible y Documentable) con un método default imprimir() . Imprimible.java package interfaces ; public interface Imprimible { //Método implementado default void imprimir (){ System. out . println ( "Esto es imprimible" ); } } Documetable.java package interfaces ; public interface Documentable { //Método implementado default void imprimir (){ System. out . println ( "Esto es imprimible" ); } } Ahora crearemos una clase llamada Documento. Esta cla...
Entradas recientes

Java Tip 24: conociendo la clase Optional

La documentación oficial nos dice: Optional en Java es una clase de Java 8 que actúa como un contenedor para un valor que puede estar presente o no. Se utiliza para gestionar explícitamente los valores nulos y evitar NullPointerException, haciendo el código más claro y seguro. En lugar de retornar un valor null, que puede provocar errores, Optional permite crear objetos que pueden estar vacíos o contener un valor, lo que requiere que el programador maneje explícitamente el caso de que no haya valor. Con la clase Optional podemos: Evitar el riesgo de un NullPointerException. Checar si un valor existe o no.  Recuperar un valor está presente o no.  Ejecutar acciones en función si el valor esta presente o no. Esta clase promueve un estilo de programación más seguro y expresivo. Importamos esta clase: import java.util.Optional; Una vez importada la podremos usar. Veamos la clase: public final class Optional < T > {} Como se puede ver se t...

Java Tip 23: functional interfaces

En la anterior entrega vimos lo que son las expresiones lambda . En esta ocasión veremos las Functional Interfaces . Una Functional Interface es una interfaz Java que contiene un solo método abstracto. Esto garantiza que se pueda usar con expresiones lambda. ¿Cómo definimos una Functional Interface (interface funcional)? Con la anotación @FunctionalInterface un ejemplo sería este bloque: @FunctionalInterface interface MyInterfaceFuncional { void hacerAlgo (); } Como vimos anteriormente existen cuatro principales: Consumer: Puede o no recibir algún valor y no devolver nada.  Function: Puede tomar dos valores de distinto tipo y devolver un valor en específico.  Predicate: Puede tomar valores y devolver un valor booleano true o false.  Supplier: No recibe valores, pero devuelve un valor. Consumer. @FunctionalInterface interface Consumer < T > { void accept (T t); } Function. @FunctionalInterface interface Func...

Java Tip 22: expresiones lambda

Hoy hablaremos de una característica fundamental del lenguaje Java que apareció desde la versión 8: las expresiones lambda . Las cuales no son otra cosa que funciones que no necesitan pertenecer a alguna clase previamente definida , es decir, son anónimas. Características: Vienen de la programación funcional.  Son funciones anónimas.  Se escriben en línea.  Pueden o no recibir cero o más argumentos.  Pueden o no retornar algún valor. Pueden consumir métodos de otras clases y objetos. Pueden pasar como argumentos en los métodos. Solo pueden acceder a variables del ámbito al que pertenecen. La sintaxis básica es la siguiente: () => {cuerpo - lambda} (param) => {cuerpo - lambda} (param1, param2) => {cuerpo - lambda} (param1, param2, paramN) => {cuerpo - lambda} Miremos unos ejemplos: Sin parámetros: () -> System. out . println ( "Hola desde una lambda sin parámetros" ); Con un parámetro: Predicate < Integer > esPar...