lomck中相关注解和日常使用

    技术2022-07-11  124

    具体参考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(…)方法才能构造出来

    Processed: 0.022, SQL: 9