- 具体参考https://www.cnblogs.com/ziyue7575/p/11606864.html
在写代码中主要使用:
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true) //继承父类时使用
public class PayLogDTO extends BaseRequestDTO {}
- data
@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法,
@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(…)方法才能构造出来