lombok 可以通过简单注解生成常用的Java代码,以提高开发效率。
1. @Getter/@Setter
注解字段或类上,默认生成 public 的setter,getter方法
如果要修改方法修饰符,可以设置value的值,例如:@Getter(AccessLevel.PROTECTED)
@Getter @Setter public class User { @Getter @Setter private String name; @Setter(AccessLevel.PROTECTED) private int age; private String address; }
2. @ToString
生成toString()方法,格式如下。
可以使用 exclude 设置不包含字段,如:@ToString(exclude = {"id","name"})
@ToString public class User { private String name; private int age; private String address; }
生成代码如下:
public String toString() { return "User(name=" + this.name + ", age=" + this.age + ", address=" + this.address + ")"; }
3. @EqualsAndHashCode
生成hashCode()和equals()方法,默认情况下,它将使用所有非静态,非transient字段。
可以使用 exclude 设置不包含字段
4.@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor
@NoArgsConstructor 生成一个无参构造方法。当类中有final字段没有被初始化时,可用@NoArgsConstructor(force = true),会为没有初始化的final字段设置默认值 0 / false / null。
@RequiredArgsConstructor:会生成一个包含常量,和标识了NotNull的变量 的构造方法。
@AllArgsConstructor 生成全字段的构造方法。
5. @Data
@data 包括了 @Getter,@Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode 的功能。
6. @Builder
@Builder 自动生成复杂的构建器代码,以使类具有可实例化的代码,例如:
Person.builder().name("Adam Savage").city("San Francisco").job("Mythbusters").job("Unchained Reaction").build();
7. @NonNull
用于字段或参数上,可以进行空值检查。
其他更多应用可以参阅:
官方文档:https://projectlombok.org/features/all
github:https://github.com/rzwitserloot/lombok