import lombok.Data;
@Data
class Empleado {
private final Departamento departamento;
private final String nombre;
}
@Data
class Departamento {
private final String nombre;
}
class Main {
public static void main( String ... args ) {
Departamento d = new Departamento("contabilidad");
Empleado e = new Empleado( d, "juanito" );
System.out.println(e);
}
}
Compilar:
~/c/j/private $ javac -cp lombok.jar Empleado.java
~/c/j/private $ javap Empleado Departamento
Lombok genera estos métodos:
Compiled from "Empleado.java"
class Empleado {
public Empleado(Departamento, java.lang.String);
public Departamento getDepartamento();
public java.lang.String getNombre();
public boolean equals(java.lang.Object);
protected boolean canEqual(java.lang.Object);
public int hashCode();
public java.lang.String toString();
}
Compiled from "Empleado.java"
class Departamento {
public Departamento(java.lang.String);
public java.lang.String getNombre();
public boolean equals(java.lang.Object);
protected boolean canEqual(java.lang.Object);
public int hashCode();
public java.lang.String toString();
}
Ejecutar normalmente:
~/c/j/private $ java Main
Empleado(departamento=Departamento(nombre=contabilidad), nombre=juanito)