摘要:注解在類上為類提供一個全參的構造方法,加了這個注解后,類中不提供默認構造方法了。這個注解用在類上,使用類中所有帶有注解的或者帶有修飾的成員變量生成對應的構造方法。
轉載請注明原創地址:http://www.54tianzhisheng.cn/2018/01/07/lombok/
前提自從進公司實習后,項目代碼中能用 Lombok 的都用了,畢竟這么好的輪子要充分利用好。也可以減少一些 get/set/toString 方法的編寫,雖說 IDEA 的插件可以自動生成 get/set/toString 方法,但是使用 Lombok 可以讓代碼更簡潔。
下面看看如何在 IDEA 中如何安裝 Lombok:
打開 IDEA 的 Settings 面板,并選擇 Plugins 選項,然后點擊 “Browse repositories”
在輸入框輸入”lombok”,得到搜索結果,點擊安裝,然后安裝提示重啟 IDEA,安裝成功;
引入依賴在自己的項目里添加 lombok 的編譯支持,在 pom 文件里面添加 dependency
怎么使用?org.projectlombok lombok 1.16.18 provided
在實體類上引入相關的注解就行:
有哪些注解?@Data
@Setter
@Getter
@Log4j
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@NonNull
@Cleanup
@ToString
@RequiredArgsConstructor
@Value
@SneakyThrows
@Synchronized
注解詳解@Data
注解在 類 上;提供類所有屬性的 get 和 set 方法,此外還提供了equals、canEqual、hashCode、toString 方法。
@Setter
注解在 屬性 上;為單個屬性提供 set 方法; 注解在 類 上,為該類所有的屬性提供 set 方法, 都提供默認構造方法。
@Getter
注解在 屬性 上;為單個屬性提供 get 方法; 注解在 類 上,為該類所有的屬性提供 get 方法,都提供默認構造方法。
@Log4j
注解在 類 上;為類提供一個 屬性名為 log 的 log4j 日志對象,提供默認構造方法。
@AllArgsConstructor
注解在 類 上;為類提供一個全參的構造方法,加了這個注解后,類中不提供默認構造方法了。
@NoArgsConstructor
注解在 類 上;為類提供一個無參的構造方法。
@EqualsAndHashCode
注解在 類 上, 可以生成 equals、canEqual、hashCode 方法。
@NonNull
注解在 屬性 上,會自動產生一個關于此參數的非空檢查,如果參數為空,則拋出一個空指針異常,也會有一個默認的無參構造方法。
@Cleanup
這個注解用在 變量 前面,可以保證此變量代表的資源會被自動關閉,默認是調用資源的 close() 方法,如果該資源有其它關閉方法,可使用 @Cleanup(“methodName”) 來指定要調用的方法,也會生成默認的構造方法
@ToString
這個注解用在 類 上,可以生成所有參數的 toString 方法,還會生成默認的構造方法。
@RequiredArgsConstructor
這個注解用在 類 上,使用類中所有帶有 @NonNull 注解的或者帶有 final 修飾的成員變量生成對應的構造方法。
@Value
這個注解用在 類 上,會生成含所有參數的構造方法,get 方法,此外還提供了equals、hashCode、toString 方法。
@SneakyThrows
這個注解用在 方法 上,可以將方法中的代碼用 try-catch 語句包裹起來,捕獲異常并在 catch 中用 Lombok.sneakyThrow(e) 把異常拋出,可以使用 @SneakyThrows(Exception.class) 的形式指定拋出哪種異常,也會生成默認的構造方法。
@Synchronized
這個注解用在 類方法 或者 實例方法 上,效果和 synchronized 關鍵字相同,區別在于鎖對象不同,對于類方法和實例方法,synchronized 關鍵字的鎖對象分別是類的 class 對象和 this 對象,而 @Synchronized 的鎖對象分別是 私有靜態 final 對象 lock 和 私有 final 對象 lock,當然,也可以自己指定鎖對象,此外也提供默認的構造方法。
總結以上注解可根據需要一起搭配使用!
雖說輪子好,但是我們不僅要知其然,也要知其所以然!
關注我文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68176.html
摘要:如果遇到非常的復雜的匹配,正則表達式的優勢就更加明顯了。關于正則表達式書寫規則,可查看,上面說的很清楚了,我就不貼出來了。替換與正則表達式匹配的子串,并返回替換后的字符串。結語正則表達式并不難,懂了其中的套路之后,一切都變得簡單了。 前言 在正文開始前,先說說正則表達式是什么,為什么要用正則表達式?正則表達式在我個人看來就是一個瀏覽器可以識別的規則,有了這個規則,瀏覽器就可以幫我們判斷...
摘要:從入門到放棄是什么,黑歷史,不講,自己百度去。類你沒有看錯,這里面的就沒有問題的。之前我們用過,和有了,再也不用這兩個貨了。一個函數,可以遍歷狀態感覺就是狀態機,好吧不說了再說就懵逼了。 ES6從入門到放棄 1.ES6是什么,黑歷史,不講,自己百度去。 2.在瀏覽器中如何使用? 1.babel babeljs.io在線編譯 2.traceur-----Google出的編譯器,把E...
摘要:動態地代理,可以猜測一下它的含義,在運行時動態地對某些東西代理,代理它做了其他事情。所以動態代理的內容重點就是這個。所以下一篇我們來細致了解下的到底是怎么使用動態代理的。 之前講了《零基礎帶你看Spring源碼——IOC控制反轉》,本來打算下一篇講講Srping的AOP的,但是其中會涉及到Java的動態代理,所以先單獨一篇來了解下Java的動態代理到底是什么,Java是怎么實現它的。 ...
摘要:手動創建執行線程存在以上問題,而線程池就是用來解決這些問題的。線程池詳解上面我們已經知道了線程池的作用,而對于這樣一個好用,重要的工具,當然已經為我們提供了實現,這也是本篇文章的重點。,線程池一旦空閑超過時間,線程都將被回收。 showImg(https://segmentfault.com/img/remote/1460000018476903); 本文原創地址,我的博客:https...
閱讀 2671·2021-11-25 09:43
閱讀 2579·2021-11-22 09:34
閱讀 2823·2021-11-12 10:34
閱讀 1431·2021-10-20 13:46
閱讀 2300·2019-08-30 13:21
閱讀 929·2019-08-30 11:21
閱讀 483·2019-08-30 11:20
閱讀 2186·2019-08-29 17:20