Lombok是一个Java库,旨在通过注解自动生成常见的Java代码,减少样板代码,提高开发效率。它通过在编译时自动添加方法,使代码更加简洁、可读。
自动为类的字段生成getter和setter方法。
@Getter @Setter
private String name;
// 等同于
private String name;
public String getName() { return this.name; }
public void setName(String name) { this.name = name; }
自动生成toString()方法,可以通过exclude属性排除特定字段。
@ToString(exclude = "password")
public class User {
private String username;
private String password;
}
自动生成equals()和hashCode()方法。
@EqualsAndHashCode
public class Person {
private String name;
private int age;
}
分别生成无参构造器、全参构造器和必要参数构造器。
@NoArgsConstructor // 生成无参构造器
@AllArgsConstructor // 生成包含所有字段的构造器
public class Person {
private String name;
private int age;
}
组合注解,相当于@Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor。
@Data
public class User {
private String username;
private String password;
}
实现建造者模式,便于创建复杂对象。