zoukankan      html  css  js  c++  java
  • Lombok让pojo变得更优雅

    Lombok 采取注解的形式,标记在pojo上面,在编译后,自动生成相应的方法,像get、set、构造方法等都可以注解一键生成。

    引入jar包:

    1 <dependency>
    2     <groupId>org.projectlombok</groupId>
    3     <artifactId>lombok</artifactId>
    4     <version>${lombok.version}</version>
    5     <scope>provided</scope>
    6 </dependency>

    使用方法:

    1 public class GetterSetterExample {
    2   @Getter @Setter private int age = 10;
    3   @Setter(AccessLevel.PROTECTED) private String name;
    4   @Override public String toString() {
    5     return String.format("%s (age: %d)", name, age);
    6   }
    7 }
     1 Data public class DataExample {
     2   private final String name;
     3   @Setter(AccessLevel.PACKAGE) private int age;
     4   private double score;
     5   private String[] tags;
     6   @ToString(includeFieldNames=true)
     7   @Data(staticConstructor="of")
     8   public static class Exercise<T> {
     9     private final String name;
    10     private final T value;
    11   }
    12 }

    基本注释:

    1 @Getter
    2 @Setter
    3 @ToString
    4 @EqualsAndHashCode  //构造函数
    5 @AllArgsConstructor  //会生成一个包含所有变量,同时如果变量使用了NotNull annotation , 会进行是否为空的校验, 全部参数的构造函数的自动生成,该注解的作用域也是只有在实体类上,参数的顺序与属性定义的顺序一致。
    6 @NoArgsConstructor  //无参构造函数
    7 @RequiredArgsConstructor  //会生成一个包含常量(final),和标识了@NotNull的变量 的构造方法

    集合注释:

    @Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

    @NonNull 该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。

    @Cleanup 该注解注解在流成员变量上能帮助我们自动调用close()方法,很大的简化了代码。

  • 相关阅读:
    CXB 闯关游戏
    CXB 移动“哨兵棋子”
    GHOJ 300 Hanoi塔
    攻防世界 web 进阶区 刷题记录
    攻防世界 web 新手练习 刷题记录
    TensorFlow01:增加变量显示+tensorboard可视化
    TensorFlow01:梯度下降
    TensorFlow01:张量
    01深度学习介绍
    05Python爬虫:响应内容写入文件
  • 原文地址:https://www.cnblogs.com/guanghe/p/10277180.html
Copyright © 2011-2022 走看看