java插件庫Lombok使用

背景:我今天在看研發項目代碼的時候,發現rd很多暴露接口會@Data@NoArgsConstructor等註解,後來查了一下是Lombok第三方庫的功能,覺得蠻不錯的,簡單記錄一下使用。

Lombok庫主要通過註解的形式修飾類,變量和方法。省去寫set/get變量值的方法、有參數/無慘構造器和輸入變量的值(還有一些其他功能,我這裏面就記錄代碼用到了)。

先看下項目中用到,如圖,三個註解,@Data,@NoArgsConstrucor,@AllArgsConstructor這個三個。

Lombok很多註解,我覺得可以分成三類:修飾類,修飾變量和修飾方法。

修飾類:

@Getter(value = AccessLevel.PUBLIC)
@Setter(value=AccessLevel.PUBLIC)

這兩個主要代替我們經常對變量進行值的寫入和獲取,除了修飾類,還可以修飾變量,那麼該變量就可以直接有set、get方法。

 舉個例子,如圖:這樣id就有了setid和getid兩個方法。同時我們設置變量訪問權限這裏面設置public。

這裏面有個java基礎就是變量權限分成4中:

public->producted->default->private 權限依次遞減。

@NoArgsConstructor:沒有參數的構造方法
@AllArgsConstructor:全部參數的構造方法

 

構造方法:主要針對類,表現形式和類名必須一致,但是沒有返回值 這種:public 類名()。主要作用就是爲類實例化設置屬性。

無參數構造方法:new的不需要傳參。

全參數構造方法:new所有參數都要賦值,這個一般和@NOTNULL一起使用,表示該變量不能爲空。

@Data :是多個註解的集合包含:@getter,@setter,@tostring,@canEqual,@equals,@hashCode。

ps:hashcode和equals 都是判斷兩個對象是否一致,區別在於:

hashcode:效率高但是並不可靠,即兩個不同對象通過生成hash值也可能相同

equals:效率低但是準確。

所以一般選擇想用hashcode判斷,不同肯定不是一個對象,相同在用equals去判斷。

https://www.jianshu.com/p/2543c71a8e45

https://blog.csdn.net/ThinkWon/article/details/101392808

https://blog.csdn.net/bailu666666/article/details/81153815

 

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