Lombok是一個(gè)在Java開發(fā)過程中為了簡化冗余和樣板式代碼而出現(xiàn)的插件。
開始我們舉一個(gè)例子才顿,我們?cè)趯懸粋€(gè)Do類的時(shí)候莫湘,經(jīng)常需要先寫屬性,然后手寫或者自動(dòng)生成get和set方法郑气,然后重寫ToString方法幅垮,然后等等操作,最終就是 圖-1 的樣子尾组。日常開發(fā)中需要寫的Do類一定會(huì)很多忙芒,如果我們把每一個(gè)類都寫成圖-1的樣式,會(huì)產(chǎn)生太多的樣板式代碼讳侨,而Lombok出現(xiàn)就是為了解決代碼書寫的冗余問題呵萨。
如圖-2是我們使用了Lombok的@Data注解之后的代碼樣式,我們可以看出來第二個(gè)圖中我們省去了Get跨跨,Set 還有ToString方法等等的實(shí)現(xiàn)代碼快潮峦,全部收斂成一個(gè)@Data注解,這樣是不是代碼就整潔了很多呢勇婴?
下面我們簡單說一下Lombok的安裝忱嘹,我們拿IDEA為例,Mvn環(huán)境下安裝Lombok耕渴。
首先說明一下Lombok是需要兩部分來支持拘悦,1是jar包支持,2是插件支持橱脸。依賴Jar包是因?yàn)榫幾g時(shí)用到的注解是在這個(gè)Jar中础米,需要插件支持是因?yàn)樗诰幾g器編譯時(shí)通過操作AST(抽象語法樹)改變字節(jié)碼生成.也就是說他可以改變Java語法
打開IDEA的Plugin,輸入“l(fā)ombok”添诉,找到圖中的那一欄屁桑,點(diǎn)擊“Install”。(PS:我這里之前安裝過栏赴,所以按鈕是Update掏颊,而不是Install),如圖-4在Mvn的Pom文件中引入Lombok的依賴,這樣我們的安裝就完成了乌叶,可以繼續(xù)使用了盆偿。
另外,Lombok還提供了其他的注解和一些簡化冗余代碼的解決方案
例如:val 關(guān)鍵字可以讓我們?cè)诙x一個(gè)變量時(shí)候不需要提前指定它的類型准浴,使用的方法如下圖:
@NonNull?注解可以修飾類的屬性事扭,當(dāng)該屬性被賦NULL值的時(shí)候,系統(tǒng)會(huì)拋出一個(gè)空指針的異常乐横,內(nèi)部的實(shí)現(xiàn)代碼是:if (param == null) throw new NullPointerException("param");? 如下是Lombok官方給出的代碼示例:
除此之外求橄,Lombok的官網(wǎng)已經(jīng)提供了很多提高效率的開發(fā)方式,具體請(qǐng)查看:https://www.projectlombok.org/