最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于@Data和@Builder注解解析

 更新時(shí)間:2024年10月25日 09:47:42   作者:abc1641211976  
在使用Lombok庫時(shí),@Data和@Builder注解混用可能會(huì)導(dǎo)致編譯失敗,解決方法包括添加@NoArgsConstructor和@AllArgsConstructor注解,或者重寫無參構(gòu)造器并注解@Tolerate,這是因?yàn)锧Data自動(dòng)生成的構(gòu)造器與@Builder的構(gòu)造模式存在沖突

@Data和@Builder注解解析

@Data 和 @Builder是使用 lombok過程中常用的兩個(gè)注解

  • @Data:將一個(gè)普通類變成JavaBean,并自動(dòng)生成相應(yīng)屬性的 Getter,Setter等方法
  • @Builder:用構(gòu)造者模式,通過鏈?zhǔn)椒椒◣椭覀兩蓪?duì)象

存在問題

@Data 和 @Builder這兩個(gè)注解混合使用,會(huì)編譯失敗。

解決方案一

通過添加@NoArgsConstructor 和 @AllArgsConstructor 這兩個(gè)注解。

這種方式會(huì)通過@AllArgsConstructor生成一個(gè)訪問級(jí)別為 public 的全參構(gòu)造器。

@Builder可以用生成的全參構(gòu)造器來構(gòu)造對(duì)象,不再與@Data所包含的@RequiredArgsConstructor發(fā)生沖突。

解決方案二

通過自己重寫無參構(gòu)造器,并添加@Tolerate注解。

重寫的無參構(gòu)造器可以幫助我們解決@Data與 @Builder 注解的沖突。

原因分析

@Data為一個(gè) Java類賦予了 JavaBean 的全部功能.實(shí)現(xiàn)了Getter,Setter,構(gòu)造器,toString等。

在為一個(gè) JavaBean 在增加 @Data注解后,可以使用set方法設(shè)置對(duì)象屬性并且使用get方法讀取屬性。

@Builder 構(gòu)造者模式的初衷是構(gòu)建并產(chǎn)出復(fù)雜產(chǎn)品,在配置好屬性后產(chǎn)出的結(jié)果是一個(gè)產(chǎn)品,此時(shí)對(duì)于開發(fā)者而言更加注重的是使用產(chǎn)品的功能而非獲取產(chǎn)品內(nèi)部的構(gòu)造,與 JavaBean的區(qū)別在于在獲取產(chǎn)品后是無法再對(duì)產(chǎn)品設(shè)置屬性,讀取屬性。

而 @Builder 會(huì)為類創(chuàng)建一個(gè)構(gòu)造內(nèi)部類,通過該類可以構(gòu)造產(chǎn)品。

該種情形下,開發(fā)者不應(yīng)該通過 new創(chuàng)建對(duì)象而是統(tǒng)一通過構(gòu)造類創(chuàng)建對(duì)象,@Builder 獲取到的對(duì)象也沒有set和get功能。

@Builder與@Data一起使用的效果

首先@Data注解標(biāo)記了我們最終的產(chǎn)出注定是一個(gè)JavaBean,而JavaBean 中的屬性是可以設(shè)置的,構(gòu)造器模式的使用可以幫助我們通過鏈?zhǔn)秸{(diào)用的方式快速構(gòu)建 JavaBean,以往我們需要通過多行set方法實(shí)現(xiàn)的 JavaBean在構(gòu)造器模式下只需要一行即可完成.

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java如何做帶復(fù)選框的菜單實(shí)例代碼

    Java如何做帶復(fù)選框的菜單實(shí)例代碼

    大家好,本篇文章主要講的是Java如何做帶復(fù)選框的菜單實(shí)例代碼,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Java?OpenCV圖像處理之自定義圖像濾波算子

    Java?OpenCV圖像處理之自定義圖像濾波算子

    這篇文章主要為大家介紹了如何利用Java?OpenCV實(shí)現(xiàn)自定義圖像濾波(降噪)?算子,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下
    2022-02-02
  • Linux下Hadoop?2.7.3?安裝搭建過程

    Linux下Hadoop?2.7.3?安裝搭建過程

    Hadoop實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop?Distributed?File?System),簡(jiǎn)稱HDFS,這篇文章給大家介紹Linux下Hadoop?2.7.3?安裝搭建過程,感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • SpringBoot使用jasypt加解密密碼的實(shí)現(xiàn)方法

    SpringBoot使用jasypt加解密密碼的實(shí)現(xiàn)方法

    這篇文章主要介紹了SpringBoot使用jasypt加解密密碼的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Spring裝配Bean教程之XML安裝配置bean詳解

    Spring裝配Bean教程之XML安裝配置bean詳解

    大家都知道spring有多重配置方式,基于XML,基于注解,基于java類的配置,其中基于XML是最強(qiáng)大的一種,下面這篇文章主要給大家介紹了關(guān)于Spring裝配Bean之XML安裝配置bean的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10
  • Java實(shí)現(xiàn)圖像分割功能

    Java實(shí)現(xiàn)圖像分割功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)圖像分割功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Java零基礎(chǔ)教程之Windows下安裝 JDK的方法圖解

    Java零基礎(chǔ)教程之Windows下安裝 JDK的方法圖解

    這篇文章主要介紹了Java零基礎(chǔ)教程之Windows下安裝 JDK的方法圖解,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • SpringBoot中處理跨域資源的5種實(shí)現(xiàn)方法與對(duì)比

    SpringBoot中處理跨域資源的5種實(shí)現(xiàn)方法與對(duì)比

    這篇文章主要為大家詳細(xì)介紹了SpringBoot中處理跨域資源的5種實(shí)現(xiàn)方法并進(jìn)行簡(jiǎn)單對(duì)比,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2026-01-01
  • Java?json轉(zhuǎn)換實(shí)體類(JavaBean)及實(shí)體類(JavaBean)轉(zhuǎn)換json代碼示例

    Java?json轉(zhuǎn)換實(shí)體類(JavaBean)及實(shí)體類(JavaBean)轉(zhuǎn)換json代碼示例

    這篇文章主要介紹了兩種常見的JSON與Java實(shí)體類相互轉(zhuǎn)換的方法,分別是使用庫Jackson、Gson、Fastjson和在線工具,無論是將JSON轉(zhuǎn)換為Java實(shí)體類還是將Java實(shí)體類轉(zhuǎn)換為JSON,這些方法都能顯著簡(jiǎn)化開發(fā)過程,需要的朋友可以參考下
    2024-12-12
  • SpringBoot中Controller參數(shù)與返回值的用法總結(jié)

    SpringBoot中Controller參數(shù)與返回值的用法總結(jié)

    這篇文章主要介紹了SpringBoot中Controller參數(shù)與返回值的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評(píng)論

台南市| 定日县| 泽州县| 怀远县| 德惠市| 盐津县| 泊头市| 翁源县| 德江县| 普安县| 佛坪县| 达孜县| 互助| 偏关县| 宁安市| 射阳县| 蓬安县| 桑日县| 长寿区| 镇江市| 报价| 定兴县| 高陵县| 马龙县| 咸阳市| 南平市| 库伦旗| 荆门市| 杭锦后旗| 关岭| 恩施市| 九龙城区| 营山县| 鸡东县| 宝兴县| 竹北市| 全南县| 纳雍县| 师宗县| 周至县| 泾川县|