1. 程式人生 > >Lombok外掛中常用註解

Lombok外掛中常用註解

  lombok 提供了簡單的註解的形式來幫助我們簡化消除一些必須有但顯得很臃腫的 java 程式碼。


@Data :註解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法

@Setter:註解在屬性上;為屬性提供 setting 方法

@Getter:註解在屬性上;為屬性提供 getting 方法

@Log4j :註解在類上;為類提供一個 屬性名為log 的 log4j 日誌物件

@NoArgsConstructor:註解在類上;為類提供一個無參的構造方法

@AllArgsConstructor:註解在類上;為類提供一個全參的構造方法

@NonNull:註解在引數上 如果該引數為null 會throw new NullPointerException(引數名);

@Cleanup:註釋在引用變數前:自動回收資源 預設呼叫close方法

  @Cleanup("dispose") org.eclipse.swt.widgets.CoolBar bar = new CoolBar(parent, 0);

  @Cleanup InputStream in = new FileInputStream(args[0]);

  @Cleanup OutputStream out = new FileOutputStream(args[1]);


介紹一下Lombok中的Cleanup這個annotation , 他的方便之處,大家在程式碼中一睹風采:

使用前:

import java.io.*;  
  
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();  
      }  
    }  
  }  
}  

使用後:

 

import lombok.Cleanup;  
import java.io.*;  
  
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);  
    }  
  }  
}

單單從程式碼的行數上面就可以知道已經精簡了不少,同時,程式碼的可讀性也進一步提高。從程式碼中我們可以容易的看出,@Cleanup的作用就是在當前變數不在有效範圍內的時候,對其進行自動的資源回收。在Java中的Stream上使用Cleanup Annotation,就是對其呼叫close方法。

原文:https://blog.csdn.net/dc2222333/article/details/78319687