lombok插件的基本使用與常用註解

導入架包或Maven添加依賴:
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.4</version>
          </dependency>

註解:
@NoArgsConstructor        創建無參構造器(如果類中含有final修飾的成員變量則無法使用)

@RequiredArgsConstructor    以類中所有帶有@NonNull註解的或者帶有final修飾的成員變量生成對應的構造方法

@AllArgsConstructor        全參構造器(不會把父類的屬性加到構造器中)

@Cleanup            默認是調用資源的close()方法

@Data                效果等同於@Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor    (不包括@NoArgsConstructor和@AllArgsConstructor)

@Value                和@Data類似,區別在於它會把所有成員變量默認定義爲private final修飾,並且不會生成set方法

@ToString            toString()

@EqualsAndHashCode        equals和hashcode、canEqual方法

@Getter/@Setter            用在成員變量上爲成員變量生成對應的get和set方法,用在類上面爲此類裏的所有非靜態成員變量生成對應的get和set方法(如果是final變量,那就只會有get方法)

@NonNull            用在成員方法或者構造方法的參數前面,會自動產生一個關於此參數的非空檢查,如果參數爲空,則拋出一個空指針異常

@Log4j                用在類上相當於private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(類名.class);

Lombok這款插件依靠可插件化的Java自定義註解處理API(JSR 269: Pluggable Annotation Processing API)來實現在Javac編譯階段利用“Annotation Processor”對自定義的註解進行預處理後生成真正在JVM上面執行的“Class文件”
在Javac 解析成AST抽象語法樹之後, Lombok 根據自己編寫的註解處理器,動態地修改 AST,增加新的節點(即Lombok自定義註解所需要生成的代碼),最終通過分析生成JVM可執行的字節碼Class文件。

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