《Lombok 实战 —— @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor》
Constructors made to order: Generates constructors that take no arguments, one argument per final / non-null field, or one argument for every field.
1. @NoArgsConstructor
1.1 @NoArgsConstructor 实战使用
@NoArgsConstructor
在类上使用,它可以提供一个无参构造器,比如:
@NoArgsConstructor
public class User {
private String username;
private String password;
}
// 编译后:
public class User {
private String username;
private String password;
public User() {
}
}
当然,有时候我们会使用到单例模式,这个时候我们需要将构造器私有化,那么就可以使用这样一个属性access
设置构造器的权限:
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class User {
private String username;
private String password;
}
// 编译后:
public class User {
private String username;
private String password;
private User() {
}
}
当类中有final字段没有被初始化时,编译器会报错,但是也可用@NoArgsConstructor(force = true)
,那么Lombok
就会为没有初始化的final
字段设置默认值 0 / false / null
, 这样编译器就不会报错,如下所示:
@NoArgsConstructor(force = true)
public class User {
private final String gender;
private String username;
private String password;
}
// 编译后:
public