Scrivere codice migliore in Java con Project Lombok
Supponiamo di avere questo codice in Java (che sappiamo tutti essere un linguaggio abbastanza prolisso):
import java.util.Objects;
public class Persona {
private int id;
private String username;
private int eta;
public Persona(int id, String username, int eta) {
this.id = id;
this.username = username;
this.eta = eta;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getEta() {
return eta;
}
public void setEta(int eta) {
this.eta = eta;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Persona persona = (Persona) o;
return id == persona.id &&
eta == persona.eta &&
Objects.equals(username, persona.username);
}
@Override
public int hashCode() {
return Objects.hash(id, username, eta);
}
@Override
public String toString() {
return "Persona{" +
"id=" + id +
", username='" + username + ''' +
", eta=" + eta +
'}';
}
public static class PersonBuilder {
private int id;
private String username;
private int eta;
public PersonBuilder setId(int id) {
this.id = id;
return this;
}
public PersonBuilder setUsername(String username) {
this.username = username;
return this;
}
public PersonBuilder setEta(int eta) {
this.eta = eta;
return this;
}
public Persona build() {
return new Persona(id, username, eta);
}
}
}