lombok用法

准备工作

  1. 引入依赖
      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.18.12</version>
      </dependency>
    
  2. 安装lombok插件

使用

  1. @Getter/@Setter
    自动产生 getter/setter

  2. @ToString
    自动重写 toString() 方法,会打印出所有变量

  3. @EqualsAndHashCode
    自动生成 equals(Object other) 和 hashcode() 方法,包括所有非静态变量和非 transient 的变量

  4. @NoArgsConstructor:生成一个没有参数的构造器
    @AllArgsConstructor: 生成一个包含所有参数的构造器

     这里注意一个 Java 的小坑,当我们没有指定构造器时,Java 编译器会帮我们自动生成一个没有任何参数的构造器给该类,但是如果我们自己写了构造器之后,Java 就不会自动帮我们补上那个无参数  的构造器了。然而很多地方(像是 Spring Data JPA),会需要每个类都一定要有一个无参数的构造器,所以你在加上 @AllArgsConstructor 时,一定要补上 @NoArgsConstrcutor,不然会有各种坑等着你
    

    @RequiredArgsConstructor : 生成一个包含 "特定参数" 的构造器,特定参数指的是那些有加上 final 修饰词的变量们

  5. @Data
    整合包,只要加了 @Data 这个注解,等于同时加了以下注解
    @Getter/@Setter
    @ToString
    @EqualsAndHashCode
    @RequiredArgsConstructor

  6. @Value
    也是整合包,但是他会把所有的变量都设成 final 的,其他的就跟 @Data 一样,等于同时加了以下注解
    @Getter (注意没有setter)
    @ToString
    @EqualsAndHashCode
    @RequiredArgsConstructor

  7. @Builder

    注意,虽然只要加上 @Builder 注解,我们就能够用流式写法快速设定对象的值,但是 setter 还是必须要写不能省略的,因为 Spring 或是其他框架有很多地方都会用到对象的 getter/setter 对他们取值/赋值。所以通常是 @Data 和 @Builder 会一起用在同个类上,既方便我们流式写代码,也方便框架做事。

      User user = User.builder().name("zs").age(18).build();
    
  8. @Slf4j
    自动生成该类的 log 静态常量,要打日志就可以直接打,不用再手动 new log 静态常量了

摘自:https://www.cnblogs.com/liangzilingyu/p/13992379.html

posted @ 2021-11-29 14:55  扬帆去远航  阅读(87)  评论(0)    收藏  举报