lombok小記

1.lombok是啥

    是java庫,它會自動插入編輯器和構建工具中,提供的註解,用來消除Java類中的大量樣板代碼。讓代碼變得乾淨,簡潔且易於維護。

2.使用

 1)maven引入


<dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.16.6</version>
      <scope>provided</scope>
</dependency>

2)下載jar包--https://projectlombok.org/download

3.註解應用(官方文檔:https://projectlombok.org/features

1)val(var在1.16.20)

    用於局部變量,相當於final

2)@Data

  類註解,包含@ToString ,@EqualsAndHashCode,@Getter,@Setter,@RequiredArgsConstrutor 作用

3)@NonNull

  屬性或構造器,非空聲明

4)@Cleanup

自動調用close()方法

//使用註解
public class CleanupExample {
  public static void main(String[] args) throws IOException {
    @Cleanup InputStream in = new FileInputStream(args[0]);
    @Cleanup OutputStream out = new FileOutputStream(args[1]);
    byte[] b = new byte[10000];
    while (true) {
      int r = in.read(b);
      if (r == -1) break;
      out.write(b, 0, r);
    }
  }
}

//無註解
public class CleanupExample {
  public static void main(String[] args) throws IOException {
    InputStream in = new FileInputStream(args[0]);
    try {
      OutputStream out = new FileOutputStream(args[1]);
      try {
        byte[] b = new byte[10000];
        while (true) {
          int r = in.read(b);
          if (r == -1) break;
          out.write(b, 0, r);
        }
      } finally {
        if (out != null) {
          out.close();
        }
      }
    } finally {
      if (in != null) {
        in.close();
      }
    }
  }
}

 5)@Value

 類註解,是@Data不可變形式,相當於爲屬性添加final聲明,只提供getter方法,不提供setter

6)@Builder

 類,構造器,方法註解

User user = User.builder()
                .account(driverAddRequest.account)
                .password(driverAddRequest.password)
                .name(driverAddRequest.name)
                .detailAddr(driverAddRequest.detailAddr)
                .status("Y")
                .build();

7)Synchronized

 方法上:聲明同步,自動加鎖

4.總結

不支持多種參數構造器的重載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章