Librería lombok
Introdución
Lombok es una librería para Java que a partir de anotaciones nos permite ahorrar código, crear unas clases más limpias. La web oficial es esta -> web Es fácil de usar y agregar a nuestro IDE y proyectos.
Instalación en Eclipse
- Descargarse el jar correspondiente. enlace
- Ejecuta dicho jar desde consola con: java -jar
- Este ejecutable detecta los IDEs que tengas instalados, se selecciona Eclipse y se instala el plugin.
- Debes reiniciar el IDE, y si todo ha ido bien en About Eclipse debe aparecer.
Instalación en proyecto
Con maven:
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
</dependencies>
Agregandolo al classpath el jar de manera clásica:
Instalación en IntelliJ IDEA
Con este IDE podéis probarlo en los ordenadores del instituto.
Agregáis al proyecto el jar necesario (como con Eclipse): Boton Derecho sobre proyecto -> Open Module Settings -> Libraries -> Y se agrega jar
Es necesario agregar un pluging:
Posibles anotaciones:
-
@Getter y @Setter: se colocan encima de la declaración de la clase o también en los atributos. Implica la generación automática de los getters y setters de todos los atributos.
-
@ToString y EqualsAndHashCode: es para la clase y se genera una sobrescrición del toString con los atributos de la clase, y se genera un equals en base al hash y el contenido de los atributos.
-
@AllArgsConstructor: automáticamente se genera un constructor con todos los parámetros de la clase, en el orden de declaración de los mismos. Campos variables
-
@NoArgsConstructor: lo mismo que lo anterior pero para el constructor por defecto.
-
@Data: equivale a todas las anotaciones de gets, sets, toString e equals y hashcode.
Hay más anotaciones, por ejemplo para pruebas, logs etc… Está aquí en enlace oficial con la api: api y con más anotaciones normales lombok.
Ejemplo:
Una vez hayas agregado la librería a tu proyecto ya puedes probarlo. Nota: activa la vista del Eclipse “Outline”, para ver en tiempo real lo que va generando las anotaciones.
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@EqualsAndHashCode
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class Persona {
private String nombre;
private String apellidos;
private int edad;
}
// Pruebalo a continuación
Persona p = new Persona("Juan","Fernandez",30);
System.out.println(p.getNombre());
Persona p2 = new Persona();
p2.setNombre("Juan");
p2.setApellidos("Fernandez");
p2.setEdad(30);
System.out.println("Funciona el equals:" + p.equals(p2));
System.out.println(p2);
Con el uso de @Data, aún se quita más codigo:
@Data
@AllArgsConstructor
public class Persona {
private String nombre;
private String apellidos;
private int edad;
}
Por tanto es una librería de inyención de código en tiempo de compilación. Con las nuevas versiones de Java también podéis usar los records para motivos similares.
Consola JShell
Es una consola shell REPL (interactiva) para Java, al estilo a las que hay en Phython por ejemplo. Enlace -> JShell