首頁 > 軟體

使用lombok插件來簡化java實體類的編寫

2021-05-27 17:01:10

之前的文章裡,我曾說過,java中的類是抽象出物件的共同特性的一個類似模板的檔案。比如用一個Students類來描述所有學生都有的特性:年齡、性別、班級等。這些特性我們稱為類的屬性(field)。

我們通過new關鍵字來呼叫類的構造方法創建類的例項物件。

類的構造器分為有參構造與無參構造。如果我們使用無參構造創建物件,那麼程式碼的寫法就是這樣的「new Students()」。我們可以通過在類中給屬性設定預設值來保證物件的屬性有值。但是這樣方式有時候並不好用。

為了給物件的屬性賦值,java類提供了setter方法,並提供getter方法從物件中獲取屬性的值。

有時候我們拿到一個java物件,我們需要一次性打印出物件的所有屬性的值,那麼我們就用上了類中重寫的toString方法。該方法能夠讓我們以自己定義的優美格式輸出物件的各個屬性值。

有時候我們可能需要將兩個類型相同的物件進行對比,看看二者是否是一樣的,此時我們用上了類中重寫的equals方法。

此外,還有hashCode方法也很有可能會在特殊的場合需要被我們使用。

由於我們重寫上述方法時,各方法已經有相對來說比較固定的重寫模板(各方法使用場景基本上都比較固定),我們對每個實體類都要重寫這些邏輯固定並且毫無技術含量的程式碼,並因此增加了我們的工作量,實在是一件得不償失的事。

另外,隨著時間的推移,我們的項目可能因為各種各樣的原因出現需求變更,以前編寫的實體類就有可能出現屬性的增加或減少。例如:現在我們班來了個美國學員,考慮到班上的學生已經出現兩種國籍,所以,Students類會增加一個屬性nationality用來描述學生的國籍。由於增加了一個屬性,我們需要增加對應屬性nationality的getter方法、setter方法、equals方法,修改hashCode方法和toString方法。如果後續陸陸續續需要增加屬性,無形之中就增加了許多工作量。

下圖是使用lombok插件與未使用插件時編寫程式碼的風格:

通過對比,我們發現使用了lombok插件的程式碼變得超級簡單,getter方法、setter方法等之前需要我們自己編寫的方法,現在都不需要了,只要在類名的上方加上幾個註解,就搞定。從而讓我們在以後給類新增屬性時,也不需要給每個類新增一堆getter、setter等等方法。

看到這裡,是不是迫不及待想要知道lombok插件是怎樣使用的呢?

別急,想要使用lombok來簡化開發並不難。

01安裝lombok插件

本文以idea2017.2.2版本為開發工具(目前一些比較新的版本的idea已經內建了該插件了)。其他開發工具也很簡單,百度一下有很多教程的。

按照如圖的順序依次點選、搜尋即可。由於我的idea已經安裝過了該插件,所以搜尋出來的是update,代表更新到新版。沒安裝過的idea在搜尋出插件時會顯示install,直接點選install進行安裝即可。安裝完成後需要重啟idea使插件生效。

02開啟 AnnocationProcessors

安裝好lombok之後,插件還不會起到作用。我們需要開啟 AnnocationProcessors來使得插件在編譯階段起作用。(lombok需要在源碼編譯成位元組碼(.class檔案)時幫我們在源碼中加入我們需要的getter、setter、toString等方法,然後在jvm運行位元組碼的階段是用不上這個插件的)

03加入lombok的jar包到項目中

安裝插件之後,我們已經告知idea要使用這個插件。但是插件真正起作用的部分在jar包裡面。匯入jar包的過程如下:

將lombok的jar包放進項目的lib目錄,沒有的話,就新增一個folder。jar包可以在mvnrepository網站下載(maven中央倉庫)。

接下來按照圖中的順序依次操作:

擊(最多18字)

依次進行上述操作後,我們就可以使用lombok插件了。

使用過程很簡單,在需要getter方法的類名上面新增「@Getter」註解,在需要setter方法的類名上面新增「@Setter」註解,如果你需要toString方法,則新增「@ToString」註解。更多介紹請看下圖,各個註解的使用以及用法如下:

到這裡,lombok插件的使用就全部介紹完畢了。小夥伴們,你們學會了嗎?

#Java語言初學#


IT145.com E-mail:sddin#qq.com