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()方法,很大的简化了代码。

  • 相关阅读:
    Rotation Kinematics
    离职 mark
    PnP 问题方程怎么列?
    DSO windowed optimization 代码 (4)
    Adjoint of SE(3)
    IMU 预积分推导
    DSO windowed optimization 代码 (3)
    DSO windowed optimization 代码 (2)
    OKVIS 代码框架
    DSO windowed optimization 代码 (1)
  • 原文地址:https://www.cnblogs.com/guanghe/p/10277180.html
Copyright © 2011-2022 走看看