本人博客: https://blog.onfree.cn (●ˇ?ˇ●)

11分鐘了解Java中lombok使用

讓我們將事前的憂慮,換為事前的思考和計劃吧


一、Lombok是什么?

Lombok是一個Java庫,能自動插入編輯器并構建工具,簡化Java開發。通過添加注解的方式,不需要為類編寫getter或setter方法,同時可以自動化變量。意思就是說可以只通過一個注解就讓編譯器自動編譯類是getter、setter等重復寫的方法。

官方介紹
Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.

二、如果使用?

1.添加依賴

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

2.添加插件

在idea上安裝lombok插件,并在File-Settings-build-AnnocationProcessors啟用

開啟該項是為了讓Lombok注解在編譯階段起到作用。

3.常用注解

官方文檔地址

val
注解在字段,不可變局部變量

var
注解在字段,可變局部變量

@NonNull
注解在參數上,判斷不為空,拋出NullPointerException

@Cleanup
執行調用close方法

@Getter/@Setter
注解在類或字段,注解在類時為所有字段生成Getter/setter方法,注解在字段上時只為該字段生成Getter/setter方法

@ToString
注解在類,添加toString方法

@EqualsAndHashCode
注解在類,生成hashCode和equals方法

@NoArgsConstructor
注解在類,生成無參的構造方法

@RequiredArgsConstructor 
注解在類,為類中需要特殊處理的字段生成構造方法,比如final和被@NonNull注解的字段。

@AllArgsConstructor
注解在類,生成包含類中所有字段的構造方法

@Data
注解在類,生成setter/getter、equals、canEqual、hashCode、toString方法,如為final屬性,則不會為該屬性生成setter方法

@Value
注解在類,相當于:final @ToString @EqualsAndHashCode @AllArgsConstructor @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) @Getter

@Builder
注解在類,注解后可賦值新對象和修改原對象的屬性值

@SneakyThrows
注解在方法上,相當于添加了try-catch捕捉異常

@Synchronized
注解在方法上,鎖定一個private的常量。如果當前類中沒有這個常量,就會自動生成一個。


@Getter(lazy=true)
Getter高級版,會提高代碼效率,同時由Lombok幫助你管理線程安全問題

本博客原文:https://blog.onfree.cn/posts/9eb5d68a.html
轉載請申明原作者Athink,謝謝!