成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Lombok 看這篇就夠了

LeanCloud / 1239人閱讀

摘要:注解在類上為類提供一個(gè)全參的構(gòu)造方法,加了這個(gè)注解后,類中不提供默認(rèn)構(gòu)造方法了。這個(gè)注解用在類上,使用類中所有帶有注解的或者帶有修飾的成員變量生成對應(yīng)的構(gòu)造方法。

轉(zhuǎn)載請注明原創(chuàng)地址:http://www.54tianzhisheng.cn/2018/01/07/lombok/

前提

自從進(jìn)公司實(shí)習(xí)后,項(xiàng)目代碼中能用 Lombok 的都用了,畢竟這么好的輪子要充分利用好。也可以減少一些 get/set/toString 方法的編寫,雖說 IDEA 的插件可以自動(dòng)生成 get/set/toString 方法,但是使用 Lombok 可以讓代碼更簡潔。

下面看看如何在 IDEA 中如何安裝 Lombok:

安裝

打開 IDEA 的 Settings 面板,并選擇 Plugins 選項(xiàng),然后點(diǎn)擊 “Browse repositories”

在輸入框輸入”lombok”,得到搜索結(jié)果,點(diǎn)擊安裝,然后安裝提示重啟 IDEA,安裝成功;

引入依賴

在自己的項(xiàng)目里添加 lombok 的編譯支持,在 pom 文件里面添加 dependency


    org.projectlombok
    lombok
    1.16.18
    provided

怎么使用?

在實(shí)體類上引入相關(guān)的注解就行:

有哪些注解?

@Data

@Setter

@Getter

@Log4j

@AllArgsConstructor

@NoArgsConstructor

@EqualsAndHashCode

@NonNull

@Cleanup

@ToString

@RequiredArgsConstructor

@Value

@SneakyThrows

@Synchronized

注解詳解

@Data

注解在 上;提供類所有屬性的 get 和 set 方法,此外還提供了equals、canEqual、hashCode、toString 方法。

@Setter

注解在 屬性 上;為單個(gè)屬性提供 set 方法; 注解在 上,為該類所有的屬性提供 set 方法, 都提供默認(rèn)構(gòu)造方法。

@Getter

注解在 屬性 上;為單個(gè)屬性提供 get 方法; 注解在 上,為該類所有的屬性提供 get 方法,都提供默認(rèn)構(gòu)造方法。

@Log4j

注解在 上;為類提供一個(gè) 屬性名為 log 的 log4j 日志對象,提供默認(rèn)構(gòu)造方法。

@AllArgsConstructor

注解在 上;為類提供一個(gè)全參的構(gòu)造方法,加了這個(gè)注解后,類中不提供默認(rèn)構(gòu)造方法了。

@NoArgsConstructor

注解在 上;為類提供一個(gè)無參的構(gòu)造方法。

@EqualsAndHashCode

注解在 上, 可以生成 equals、canEqual、hashCode 方法。

@NonNull

注解在 屬性 上,會(huì)自動(dòng)產(chǎn)生一個(gè)關(guān)于此參數(shù)的非空檢查,如果參數(shù)為空,則拋出一個(gè)空指針異常,也會(huì)有一個(gè)默認(rèn)的無參構(gòu)造方法。

@Cleanup

這個(gè)注解用在 變量 前面,可以保證此變量代表的資源會(huì)被自動(dòng)關(guān)閉,默認(rèn)是調(diào)用資源的 close() 方法,如果該資源有其它關(guān)閉方法,可使用 @Cleanup(“methodName”) 來指定要調(diào)用的方法,也會(huì)生成默認(rèn)的構(gòu)造方法

@ToString

這個(gè)注解用在 上,可以生成所有參數(shù)的 toString 方法,還會(huì)生成默認(rèn)的構(gòu)造方法。

@RequiredArgsConstructor

這個(gè)注解用在 上,使用類中所有帶有 @NonNull 注解的或者帶有 final 修飾的成員變量生成對應(yīng)的構(gòu)造方法。

@Value

這個(gè)注解用在 上,會(huì)生成含所有參數(shù)的構(gòu)造方法,get 方法,此外還提供了equals、hashCode、toString 方法。

@SneakyThrows

這個(gè)注解用在 方法 上,可以將方法中的代碼用 try-catch 語句包裹起來,捕獲異常并在 catch 中用 Lombok.sneakyThrow(e) 把異常拋出,可以使用 @SneakyThrows(Exception.class) 的形式指定拋出哪種異常,也會(huì)生成默認(rèn)的構(gòu)造方法。

@Synchronized

這個(gè)注解用在 類方法 或者 實(shí)例方法 上,效果和 synchronized 關(guān)鍵字相同,區(qū)別在于鎖對象不同,對于類方法和實(shí)例方法,synchronized 關(guān)鍵字的鎖對象分別是類的 class 對象和 this 對象,而 @Synchronized 的鎖對象分別是 私有靜態(tài) final 對象 lock 和 私有 final 對象 lock,當(dāng)然,也可以自己指定鎖對象,此外也提供默認(rèn)的構(gòu)造方法。

總結(jié)

以上注解可根據(jù)需要一起搭配使用!

雖說輪子好,但是我們不僅要知其然,也要知其所以然!

關(guān)注我

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/68176.html

相關(guān)文章

  • JS正則表達(dá)式入門,看這篇就夠了

    摘要:如果遇到非常的復(fù)雜的匹配,正則表達(dá)式的優(yōu)勢就更加明顯了。關(guān)于正則表達(dá)式書寫規(guī)則,可查看,上面說的很清楚了,我就不貼出來了。替換與正則表達(dá)式匹配的子串,并返回替換后的字符串。結(jié)語正則表達(dá)式并不難,懂了其中的套路之后,一切都變得簡單了。 前言 在正文開始前,先說說正則表達(dá)式是什么,為什么要用正則表達(dá)式?正則表達(dá)式在我個(gè)人看來就是一個(gè)瀏覽器可以識(shí)別的規(guī)則,有了這個(gè)規(guī)則,瀏覽器就可以幫我們判斷...

    wenzi 評(píng)論0 收藏0
  • ES6入門,看這篇就夠了

    摘要:從入門到放棄是什么,黑歷史,不講,自己百度去。類你沒有看錯(cuò),這里面的就沒有問題的。之前我們用過,和有了,再也不用這兩個(gè)貨了。一個(gè)函數(shù),可以遍歷狀態(tài)感覺就是狀態(tài)機(jī),好吧不說了再說就懵逼了。 ES6從入門到放棄 1.ES6是什么,黑歷史,不講,自己百度去。 2.在瀏覽器中如何使用? 1.babel babeljs.io在線編譯 2.traceur-----Google出的編譯器,把E...

    lewinlee 評(píng)論0 收藏0
  • 你真的完全了解Java動(dòng)態(tài)代理嗎?看這篇就夠了

    摘要:動(dòng)態(tài)地代理,可以猜測一下它的含義,在運(yùn)行時(shí)動(dòng)態(tài)地對某些東西代理,代理它做了其他事情。所以動(dòng)態(tài)代理的內(nèi)容重點(diǎn)就是這個(gè)。所以下一篇我們來細(xì)致了解下的到底是怎么使用動(dòng)態(tài)代理的。 之前講了《零基礎(chǔ)帶你看Spring源碼——IOC控制反轉(zhuǎn)》,本來打算下一篇講講Srping的AOP的,但是其中會(huì)涉及到Java的動(dòng)態(tài)代理,所以先單獨(dú)一篇來了解下Java的動(dòng)態(tài)代理到底是什么,Java是怎么實(shí)現(xiàn)它的。 ...

    haitiancoder 評(píng)論0 收藏0
  • 線程池?面試?看這篇就夠了!

    摘要:手動(dòng)創(chuàng)建執(zhí)行線程存在以上問題,而線程池就是用來解決這些問題的。線程池詳解上面我們已經(jīng)知道了線程池的作用,而對于這樣一個(gè)好用,重要的工具,當(dāng)然已經(jīng)為我們提供了實(shí)現(xiàn),這也是本篇文章的重點(diǎn)。,線程池一旦空閑超過時(shí)間,線程都將被回收。 showImg(https://segmentfault.com/img/remote/1460000018476903); 本文原創(chuàng)地址,我的博客:https...

    antz 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<