Lombok項目是一個Java庫,它會自動插入編輯器和構建工具中,Lombok提供了一組有用的注釋,用來消除Java類中的大量樣板代碼。僅五個字元(@Data)就可以替換數百行代碼從而產生乾淨,簡潔且易於維護的Java類。
基本介紹
- 中文名:龍目
- 外文名:Lombok
“Boilerplate”是一個術語,用於描述在應用程式的許多部分中很少改動就重複的代碼。對Java語言最常見的批評就是在大多數項目中都可以找到這種類型的代碼,由於語言本身的局限性而更加嚴重。龍目島計畫(Project Lombok)旨在通過用簡單的注釋集代替眾多的代碼。
Lombok也存在一定風險,在一些開發工具商店中沒有Project Lombok支持選擇。 IDE和JDK升級存在破裂的風險,並且圍繞項目的目標和實施存在爭議。
常用註解:
@Setter :註解在類或欄位,註解在類時為所有欄位生成setter方法,註解在欄位上時只為該欄位生成setter方法。
@Getter :使用方法同上,區別在於生成的是getter方法。
@ToString :註解在類,添加toString方法。
@EqualsAndHashCode: 註解在類,生成hashCode和equals方法。
@NoArgsConstructor: 註解在類,生成無參的構造方法。
@RequiredArgsConstructor: 註解在類,為類中需要特殊處理的欄位生成構造方法,比如final和被@NonNull註解的欄位。
@AllArgsConstructor: 註解在類,生成包含類中所有欄位的構造方法。
@Data: 註解在類,生成setter/getter、equals、canEqual、hashCode、toString方法,如為final屬性,則不會為該屬性生成setter方法。
@Slf4j: 註解在類,生成log變數,嚴格意義來說是常量。