1. 程式人生 > >@Data 註解引出的 lombok 註解

@Data 註解引出的 lombok 註解

今天在看程式碼的時候, 看到了這個註解, 之前都沒有見過, 所以就查了下, 發現還是個不錯的註解, 可以讓程式碼更加簡潔.

這個註解來自於 lombok,lombok 能夠減少大量的模板程式碼,減少了在使用@Data 註解時, 需要匯入lombok.Data,下面列舉下 lombok提供的註解:

val : 和 scala 中 val 同名, 可以在執行時確定型別;

@NonNull : 註解在引數上, 如果該類引數為 null , 就會報出異常,  throw new NullPointException(引數名)

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

@Getter/@Setter : 註解在類上, 為類提供讀寫屬性

@Getter(lazy=true) :

@ToString : 註解在類上, 為類提供 toString() 方法

@EqualsAndHashCode : 註解在類上, 為類提供 equals() 和 hashCode() 方法

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor : 註解在類上, 為類提供無參,有指定必須引數, 全參建構函式

@Data : 註解在類上, 為類提供讀寫屬性, 此外還提供了 equals()、hashCode()、toString() 方法

@Value :

@Builder : 註解在類上, 為類提供一個內部的 Builder

@SneakThrows :

@Synchronized : 註解在方法上, 為方法提供同步鎖

@Log :

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

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



@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]);

上面一些註解是由包含關係的, 看需要什麼方法就增加什麼註解,@Log4j 和 @Slf4j 註解作用不小, 用在各層都可以,方便打 log。

也可以檢視官網 [ 官網 ]

簡易例子:[ 只是用了@Data註解 ]

複製程式碼
public @Data class Student {
     
     private String stuId;
     private String stuName;
     private String stuNum;
     private String stuSex;
 }
複製程式碼

雖然說,eclipse 的快捷鍵生成這些程式碼會很快,但是知道總比不知道的好,萬一別人用了,你看不懂別人的程式碼呢?那就不面子丟大了,還只是個實體類而已。

我覺得最重要的是,程式碼行數少了很多,簡潔的程式碼誰不喜歡呢?

還有一點, 使用這個 lombok 需要安裝 lombok 外掛。