@Data(staticConstructor=”methodName”)来生成一个静态方法,返回一个调用相应的构造方法产生的对象。
Setter和Getter @Setter:注解在属性,类上;为属性提供 setting 方法@Getter:注解在属性,类上;为属性提供 getting 方法,@Getter(lazy=true) 懒加载
Value @Value :Getter、toString()、equals()、hashCode()、一个全参的构造方法
Builder @Builder:Builder内部类和全字段的构造器,没有Getter、Setter、toString()。
Person build = Person.builder().phone(1).name(2).build();
ToString @ToString:toString()方法:@ToString(exclude={“param1”,“param2”})来排除param1和param2两个成员变量,或者用@ToString(of={“param1”,“param2”})来指定使用param1和param2两个成员变量
EqualsAndHashCode @EqualsAndHashCode:equals、canEqual(用于判断某个对象是否是当前类的实例,生成方法时只会使用类中的非静态和非transient成员变量)和hashcode方法,@EqualsAndHashCode(exclude={“param1”,“param2”})来排除param1和param2两个成员变量,或者用@EqualsAndHashCode(of={“param1”,“param2”})来指定使用param1和param2两个成员变量
继承类一般都会加上:@EqualsAndHashCode(callSuper=true)
NonNull @NonNull: 标记在字段上,表示非空字段。标注在方法参数上,会在第一次使用该参数是判断是否为空,如果参数为空,则抛出一个空指针异常 。
构造器 @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法,有时候我们会使用到单例模式,这个时候我们需要将构造器私有化,那么就可以使用这样一个属性access设置构造器的权限. 当类中有final字段没有被初始化时,编译器会报错,但是也可用@NoArgsConstructor(force = true),那么Lombok就会为没有初始化的final字段设置默认值 0 / false / null, 这样编译器就不会报错
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法,(不包括已初始化的final字段) @RequiredArgsConstructor: 增加必选参数构造器,只能是类中所有带有 @NonNull注解的和以final修饰的未经初始化的字段才会被纳入 RequiredArgsConstructor 构造器中,@RequiredArgsConstructor(staticName=“of”),则意味着这个类不能用构造方法构造出来,必须通过 ThisClass.of(…)方法才能构造出来