IntelliJ IDEA 使用 lombok 減少冗長(zhǎng)代碼

對(duì)于 POJO, 我們需要為其中的每個(gè)字段生成 getter,setter 方法, 雖然能夠使用 IDE 快速為我們生成. 但如果需要修改字段名稱及字段類型, 那么就需要?jiǎng)h除在重新進(jìn)行生成, 終究還是有一些不方便. 如果使用 lombok, 可以通過一些簡(jiǎn)單的注解直接生成我們所需要的代碼, 能極大的提高開發(fā)體驗(yàn).

  1. 安裝插件


    IDEA 安裝 lombok.png
  2. 啟用插件


    啟用插件. png
  3. 在項(xiàng)目中使用

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.14</version>
        <scope>provided</scope>
    </dependency>
    
  4. lombok 常用注解介紹

    1. @NonNull

      使用 @NonNull 注解修飾的字段 通過 set 方法設(shè)置時(shí)如果為 null, 將拋出 NullPointerException

    2. @Cleanup

      主要用來修飾 IO 流相關(guān)類, 會(huì)在 finally 代碼塊中對(duì)該資源進(jìn)行 close();

    3. @Getter,@Setter

      為字段生成 getter,setter 方法, 標(biāo)記到類上表明為所有字段生成

    4. @ToString

      生成 toString 方法, 默認(rèn)打印所有非靜態(tài)字段

    5. @EqualsAndHashCode

      生成 equals 和 hashCode 方法

    6. @NoArgsConstructor,@RequiredArgsConstructor,@AllArgsConstructor

      NoArgsConstructor 無參構(gòu)造函數(shù)
      RequiredArgsConstructor 為未初始化的 final 字段和使用 @NonNull 標(biāo)注的字段生成構(gòu)造函數(shù)
      AllArgsConstructor 為所有字段生成構(gòu)造函數(shù)
      7. @Data
      > 相當(dāng)于同時(shí)使用 @Getter,@Setter,@ToString,@EqualsAndHashCode,@RequiredArgsConstructor
      8. @Value
      > 使用后, 類將使用 final 進(jìn)行修飾, 同時(shí)使用 @ToString,@EqualsAndHashCode,@AllArgsConstructor,@Getter

    7. @Builder

      創(chuàng)建一個(gè)靜態(tài)內(nèi)部類, 使用該類可以使用鏈?zhǔn)秸{(diào)用創(chuàng)建對(duì)象
      如 User 對(duì)象中存在 name,age 字段, User user=User.builder().name("姓名").age(20).build()
      10. @SneakyThrows
      > 對(duì)標(biāo)注的方法進(jìn)行 try catch 后拋出異常, 可在 value 輸入需要 catch 的異常數(shù)組, 默認(rèn) catch Throwable

    8. @Synchronized

      在標(biāo)注的方法內(nèi) 使用 synchronized($lock) {} 對(duì)代碼進(jìn)行包裹 ,$lock 為 new Object[0]
      12. @Log,@CommonsLog,@JBossLog,@Log,@Log4j,@Log4j2,@Slf4j,@XSlf4j
      > 生成一個(gè)當(dāng)前類的日志對(duì)象, 可以使用 topic 指定要獲取的日志名稱

  5. 自定義配置

    雖然 lombok 能為我們快速生成代碼, 但是有一些生成的代碼依然無法滿足我們的需求. 此時(shí)可配置 lombok.config 來解決問題

    以下列出一些常用的配置

    lombok.getter.noIsPrefix=true(默認(rèn): false)  #lombok 默認(rèn)對(duì) boolean 類型字段生成的 get 方法使用 is 前綴, 通過此配置則使用 get 前綴
    lombok.accessors.chain=true(默認(rèn): false) #默認(rèn)的 set 方法返回 void 設(shè)置為 true 返回調(diào)用對(duì)象本身
    lombok.accessors.fluent=true(默認(rèn): false) #如果設(shè)置為 true. get,set 方法將不帶 get,set 前綴, 直接以字段名為方法名
    lombok.log.fieldName=logger(默認(rèn): log) #設(shè)置 log 類注解返回的字段名稱
    

    ** 注 **: 在 IDEA 中,lombok.config 文件 請(qǐng)放置于 src\main\java 目錄下, 在 src\main\resources 中將不生效

  6. 參考資料

    1. lombok 官網(wǎng)
    2. IDEA lombok 插件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子项鬼,更是在濱河造成了極大的恐慌,老刑警劉巖舌仍,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件着绊,死亡現(xiàn)場(chǎng)離奇詭異铆隘,居然都是意外死亡加派,警方通過查閱死者的電腦和手機(jī)叫确,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哼丈,“玉大人启妹,你說我怎么就攤上這事筛严∽淼” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵桨啃,是天一觀的道長(zhǎng)车胡。 經(jīng)常有香客問我,道長(zhǎng)照瘾,這世上最難降的妖魔是什么匈棘? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮析命,結(jié)果婚禮上主卫,老公的妹妹穿的比我還像新娘。我一直安慰自己鹃愤,他們只是感情好簇搅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著软吐,像睡著了一般瘩将。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凹耙,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天姿现,我揣著相機(jī)與錄音,去河邊找鬼肖抱。 笑死备典,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的意述。 我是一名探鬼主播熊经,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼泽艘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了镐依?” 一聲冷哼從身側(cè)響起匹涮,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎槐壳,沒想到半個(gè)月后然低,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡务唐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年雳攘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枫笛。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吨灭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刑巧,到底是詐尸還是另有隱情喧兄,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布啊楚,位于F島的核電站吠冤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏恭理。R本人自食惡果不足惜拯辙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颜价。 院中可真熱鬧涯保,春花似錦、人聲如沸周伦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)横辆。三九已至撇他,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間狈蚤,已是汗流浹背困肩。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脆侮,地道東北人锌畸。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像靖避,于是被迫代替她去往敵國(guó)和親潭枣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子比默,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容