女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Lombok同時使用@Data和@Builder的一個必須要避開的巨坑

jf_ro2CN3Fa ? 來源:樹洞君 ? 作者:樹洞君 ? 2022-10-11 18:14 ? 次閱讀

問題背景

Lombok @Data和@Builder分別單獨分析用法

解決方法

方法一

方法二

Lombok原理

總結(jié)

問題背景

Lombok使? 同時使?@Data和@Builder ,構(gòu)建無參構(gòu)造器報錯!編譯不通過。如下圖:

30fcccac-47b9-11ed-a3b6-dac502259ad0.jpg

Lombok @Data和@Builder分別單獨分析用法

Lombok使?@Data可以?成?參構(gòu)造和類??所有屬性的getter/setter?法。可以簡化我們代碼的開發(fā)。(需要安裝Lombok插件和引?Lombok依賴)。

例如下?的?個實體類,引?Lombok后,可以?動?成GET/SET?法和?參構(gòu)造函數(shù)。

310e6890-47b9-11ed-a3b6-dac502259ad0.jpg編譯后的class為:可以看到不僅幫我們生成了get和set ,同時也有默認(rèn)的無參構(gòu)造器

3125c396-47b9-11ed-a3b6-dac502259ad0.jpg

那么怎么自動生成有參構(gòu)造器呢?使用@Builder注解,將會幫助我們?成全屬性的構(gòu)造?法。

314a71aa-47b9-11ed-a3b6-dac502259ad0.jpg

編譯后的class為:可以看到 已經(jīng)幫我們構(gòu)建好了全屬性的構(gòu)造方法,但是如果值只引用@Builder注解是無法生成get和set的。

316222aa-47b9-11ed-a3b6-dac502259ad0.jpg

但是如果同時使?@Data和@Builder的話,可以看出盡管?成了GET/SET?法,但是?參構(gòu)造?法沒有了,這顯然是不能接受的,因為很多框架都會調(diào)??參構(gòu)造去創(chuàng)建對象。

3170a69a-47b9-11ed-a3b6-dac502259ad0.jpg

編譯后的class:318e9f38-47b9-11ed-a3b6-dac502259ad0.jpg

我們嘗試在Tet1類,?動添加?參構(gòu)造?法。編譯發(fā)現(xiàn)報錯不通過:

30fcccac-47b9-11ed-a3b6-dac502259ad0.jpg

解決方法

方法一

Lombok同時使?@Data和@Builder的時候,如果要?成?參構(gòu)造,需要在代碼???動引?注解@Tolerate,讓Lombok在?成類的時候,對指定的構(gòu)造函數(shù)不感知。

31d635f0-47b9-11ed-a3b6-dac502259ad0.jpg

方法二

直接使用無參構(gòu)造器+有參構(gòu)造器的方式,@RequiredArgsConstructor 來構(gòu)建有參,@NoArgsConstructor來構(gòu)建無參構(gòu)造器,如圖所示:

31e61114-47b9-11ed-a3b6-dac502259ad0.jpg編譯后效果:

320202a2-47b9-11ed-a3b6-dac502259ad0.jpg

Lombok原理

Java的編譯分為以下?個階段:

解析與填充符號表->注解處理->分析與字節(jié)碼?成->?成?進制class?件。

Lombok 使?的是 JDK 6 實現(xiàn)的 JSR 269: Pluggable Annotation Processing API (編譯期的注解處理器),它是在編譯期時把 Lombok 的注解代碼,轉(zhuǎn)換為常規(guī)的 Java ?法?實現(xiàn)注?。

在編譯期階段,當(dāng) Java 源碼被抽象成語法樹 (AST) 之后,Lombok 會根據(jù)??的注解處理器動態(tài)的修改AST,增加新的代碼 (節(jié)點),在這?切執(zhí)?之后,再通過分析?成了最終的字節(jié)碼 (.class) ?件,這就是Lombok 的執(zhí)?原理。

可以借助注解處理器實現(xiàn)?個簡單的 Setter,我們的實現(xiàn)步驟是:

?定義?個注解標(biāo)簽接?,并實現(xiàn)?個?定義的注解處理器;

利? tools.jar 的 javac api 處理 AST (抽象語法樹)3. 使??定義的注解處理器編譯代碼。

1.定義?定義注解和注解處理器

?先創(chuàng)建?個 MySetter.java ?定義?個注解,代碼如下:

322d8bca-47b9-11ed-a3b6-dac502259ad0.jpg

再實現(xiàn)?個?定義的注解處理器,代碼如下:

323c9552-47b9-11ed-a3b6-dac502259ad0.jpg32574b7c-47b9-11ed-a3b6-dac502259ad0.jpg3295f1ce-47b9-11ed-a3b6-dac502259ad0.jpg

測試類如下:

32b791d0-47b9-11ed-a3b6-dac502259ad0.jpg

2.對注解處理器進?編譯,隨后使?注解處理器對類進?編譯

?先需要先對注解處理器進?編譯(javac -cp ?于引?第三?jar包進?編譯)

32cef5fa-47b9-11ed-a3b6-dac502259ad0.jpg

然后使?注解處理器對這個Person測試類進?編譯:

這時候再看?成的Person.class,可以發(fā)現(xiàn)Setter?法已經(jīng)?成了:

32e5ffca-47b9-11ed-a3b6-dac502259ad0.jpg32f6a2f8-47b9-11ed-a3b6-dac502259ad0.jpg

總結(jié)

當(dāng)然盡管測試類已經(jīng)?成Setter?法,但是因為是在編譯時期?成的,因此我們在開發(fā)的時候是沒法直接調(diào)?Setter?法的,因此Lombok提供了插件機制,?便我們在開發(fā)的時候可以直接去調(diào)?Lombok的特性。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2986

    瀏覽量

    107140
  • Data
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    38648
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    676

    瀏覽量

    33801
  • 插件
    +關(guān)注

    關(guān)注

    0

    文章

    339

    瀏覽量

    22967
  • Builder
    +關(guān)注

    關(guān)注

    1

    文章

    23

    瀏覽量

    11395

原文標(biāo)題:Lombok 同時使用 @Data 和 @Builder 的巨坑,千萬別亂用!

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    如何避開智能硬件創(chuàng)業(yè)的那些

    `智能硬件是繼智能手機之后的科技概念,通過軟硬件結(jié)合的方式,對傳統(tǒng)設(shè)備進行改造,進而讓其擁有智能化的功能。智能化之后,硬件具備連接的能力,實現(xiàn)互聯(lián)網(wǎng)服務(wù)的加載,形成“云+端”的典型架構(gòu),具備了
    發(fā)表于 03-14 10:13

    請問uboot必須要嗎?

    uboot是必須要的嗎?
    發(fā)表于 08-23 05:45

    對于28335的SPI的FIFO接收,必須要發(fā)送與接收同時開啟嗎?

    對于28335的SPI的FIFO接收,必須要發(fā)送與接收同時開啟嗎,因為我只想接收數(shù)據(jù),28335不需要發(fā)送數(shù)據(jù)。(外部的芯片數(shù)據(jù)放在外部芯片的寄存器中,28335通過SPI讀取即可)在TI給出
    發(fā)表于 07-20 06:22

    數(shù)據(jù)包解密必須要配置哪些

    1、數(shù)據(jù)包解密必須要配置 Netkey,Appkey,Devkey, IV Index的,可以找下配置接口。2、廣播包需要 37,38, 39 三通道同時抓才行,般使用的是專門的儀
    發(fā)表于 07-22 08:04

    stm32hal庫之外部中斷

    stm32hal庫之外部中斷,如果使用按鍵外部中斷會導(dǎo)致頻繁觸發(fā)中斷,從而不能退出中斷,導(dǎo)致卡死void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin
    發(fā)表于 08-13 08:17

    TPS54310 PWRPAD必須要接地嗎?

    TPS54310 PWRPAD必須要接地嗎?
    發(fā)表于 12-14 11:08

    智能音箱想要成功 必須要先弄清楚這3問題

    2018年6月14日,在億歐“智能+新商業(yè)峰會”同期舉辦的“AI消費產(chǎn)品峰會”上,我們將專門設(shè)立智能音箱相關(guān)圓桌論壇,對這問題進行深刻的探討。而今天,就先來聊聊智能音箱想要成功,必須要想清楚的3問題。
    發(fā)表于 12-18 16:59 ?2399次閱讀
    智能音箱想要成功 <b class='flag-5'>必須要</b>先弄清楚這3<b class='flag-5'>個</b>問題

    單片機程序為什么必須要包含CONST H

    下面就介紹下在我的單片機程序里必須要包含的頭文件----“const.h”,完整內(nèi)容如下:
    發(fā)表于 08-15 17:32 ?2次下載
    單片機程序為什么<b class='flag-5'>必須要</b>包含CONST H

    三極管,三必須要掌握的“判別方法”資料下載

    電子發(fā)燒友網(wǎng)為你提供三極管,三必須要掌握的“判別方法”資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-03 08:42 ?17次下載
    三極管,三<b class='flag-5'>個</b><b class='flag-5'>必須要</b>掌握的“判別方法”資料下載

    Lombok開發(fā)插件使用小技巧

    0x01:Lombok簡介 Lombok款 Java開發(fā)插件,使得 Java 開發(fā)者可以通過其定義的些注解來消除業(yè)務(wù)工程中冗長和繁瑣的代碼,尤其對于簡單的 Java 模型對象(
    的頭像 發(fā)表于 06-12 18:07 ?1991次閱讀

    重演自己如何掉入Lombok的戲法陷阱

    。您是否正準(zhǔn)備擁抱Lombok?還是正準(zhǔn)備將如此酷炫的項目推薦給你的團隊?如果您準(zhǔn)備那么做,不妨聽聽我在使用Lombok年后的些感受。 我承認(rèn),
    的頭像 發(fā)表于 10-28 11:29 ?1295次閱讀

    發(fā)現(xiàn)Spring事務(wù)的bug 你必須要小心了

    不正確 9.多線程調(diào)用 10.嵌套事務(wù)多回滾了 對于從事java開發(fā)工作的同學(xué)來說,spring的事務(wù)肯定再熟悉不過了。在某些業(yè)務(wù)場景下,如果同時有多張表的寫入操作,為了保證操作的原子性(要么同時成功,要么同時失敗)避免數(shù)據(jù)不
    的頭像 發(fā)表于 10-11 18:17 ?1002次閱讀

    Lombok的使用

    在平時我們工作的時候,我們經(jīng)常會使用 toString() 方法來輸出對象的些屬性信息。Lombok 給我們提供了
    的頭像 發(fā)表于 09-25 14:03 ?1121次閱讀

    Lombok如何派上用場

    Java的 record 關(guān)鍵字是Java 14中引入的新的語義特性。record 對于創(chuàng)建小型不可變的對象非常有用。另方面,Lombok
    的頭像 發(fā)表于 10-08 15:39 ?455次閱讀

    小程序開發(fā)“”多,華為云這款輕量應(yīng)用服務(wù)器輕松避

    地分享和傳播。小程序開發(fā)如今已經(jīng)成為了很多企業(yè)和個人的選擇,它具有快速、簡潔、低成本等優(yōu)勢,但同時也存在許多隱藏的陷阱。 七大,埋雷眾多 第一大坑:設(shè)計不合理 不合理的設(shè)計會給用戶
    的頭像 發(fā)表于 11-23 00:53 ?385次閱讀
    小程序開發(fā)“<b class='flag-5'>巨</b><b class='flag-5'>坑</b>”多,華為云這款輕量應(yīng)用服務(wù)器輕松避<b class='flag-5'>坑</b>
    主站蜘蛛池模板: 广丰县| 榆中县| 尼勒克县| 兴义市| 永寿县| 鄂尔多斯市| 吴桥县| 兴宁市| 英吉沙县| 吉安县| 塔城市| 绍兴市| 菏泽市| 会同县| 钟山县| 晋宁县| 中阳县| 丰顺县| 青州市| 汶上县| 永新县| 宁武县| 太仆寺旗| 翼城县| 皋兰县| 英德市| 松阳县| 青冈县| 大丰市| 寿阳县| 健康| 佛坪县| 盐池县| 威信县| 汉寿县| 湖州市| 凤山市| 墨竹工卡县| 闻喜县| 巴南区| 密山市|