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

使用Lombok子類繼承父類,父類屬性不生效問題及解決

 更新時間:2024年10月25日 09:35:58   作者:寫....寫個大西瓜  
在使用Lombok庫時,若子類繼承父類,父類的屬性可能不會自動生效,為解決此問題,可通過在父類上添加@Getter和@Setter注解,或使用@SuperBuilder注解來確保父類屬性在子類中有效,同時,需注意確保Lombok版本一致且正確配置了相關(guān)插件

使用Lombok子類繼承父類,父類屬性不生效

子類增加:

@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Data
@Entity
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class SysRights extends BaseEntity {
    @Id
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "uuid2")
    private String rightsId;
    private String rightsName;
    private String rightsUrl;
    private String rightsIcon;
}

問題解決~~~~

Lombok 繼承時應(yīng)注意的點

lombok項目的產(chǎn)生就是為了省去我們手動創(chuàng)建getter和setter等基本方法的麻煩,它能夠在我們編譯源碼的時候自動幫我們生成getter和setter等方法。

即它最終能夠達到的效果是:

在源碼中沒有g(shù)etter和setter方法,但是在編譯生成的字節(jié)碼文件中有g(shù)etter和setter方法

繼承時的@Data

我們知道@Data注解在類,為類的所有字段注解@ToString、@EqualsAndHashCode、@Getter的便捷方法,同時為所有非final字段注解@Setter。

要注意@EqualsAndHashCode注解與@ToString注解默認情況下是忽略父類的成員變量的,測試代碼如下:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class School {
 
  public int id;
 
  public String name;
 
  public String age;
 
}
 
@Data
class ShangHai extends School {
  private String type;
}
 
 
class test {
 
  public static void main(String[] args) {
    ShangHai shangHai = new ShangHai();
    shangHai.setId(1);
    shangHai.setName("上海大學");
    shangHai.setType("A");
 
    ShangHai shangHai2 = new ShangHai();
    shangHai2.setId(2);
    shangHai2.setName("華東師范");
    shangHai2.setType("A");
 
    System.out.println(shangHai.equals(shangHai2));
    System.out.println(shangHai.toString());
    System.out.println(shangHai2.toString());
 
  }
}

它的打印結(jié)果是:

true
ShangHai(type=A)
ShangHai(type=A)

在此可以發(fā)現(xiàn),上述的兩個實例沒有對比父類的成員變量是否相同,僅僅對比的type字段的值,所以是true。同理,toString方法是不會打印父類的成員的。

使父類成員變量參與到邏輯中

這個解決很簡單,僅僅需要給注解帶上一個參數(shù):

@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
class ShangHai extends School {
  private String type;
}

打印結(jié)果

true
ShangHai(super=School(id=1, name=上海大學, age=null), type=A)
ShangHai(super=School(id=2, name=華東師范, age=null), type=A)

注意:

由上述的代碼演示,我們可以知道,在類繼承的情況時應(yīng)注意@Data注解不會涉父類的成員的坑,需要加callSuper = true的參數(shù)。

總結(jié)

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

相關(guān)文章

  • Java的@Repeatable注解使用詳細解析

    Java的@Repeatable注解使用詳細解析

    這篇文章主要介紹了Java的@Repeatable注解使用詳細解析,java8新增了注解@Repeatable,在hibernate-validator的源碼注解如@MAX、@NotNull等中,有@Repeatable注解的使用,需要的朋友可以參考下
    2024-02-02
  • SpringBoot集成Redis實現(xiàn)訂單超時管理的詳細步驟

    SpringBoot集成Redis實現(xiàn)訂單超時管理的詳細步驟

    文章描述了如何使用Redis來處理超時支付訂單,包括引入依賴、配置連接、定義實體類、實現(xiàn)服務(wù)和監(jiān)聽器等步驟,文章討論了優(yōu)化方案、注意事項以及Redis的性能和可靠性問題,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • Mybatis-Plus自定義集合類型的類型處理器詳解

    Mybatis-Plus自定義集合類型的類型處理器詳解

    這篇文章主要介紹了Mybatis-Plus自定義集合類型的類型處理器詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • MapStruct處理Java中實體與模型間不匹配屬性轉(zhuǎn)換的方法

    MapStruct處理Java中實體與模型間不匹配屬性轉(zhuǎn)換的方法

    今天小編就為大家分享一篇關(guān)于MapStruct處理Java中實體與模型間不匹配屬性轉(zhuǎn)換的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • SpringBoot加載靜態(tài)資源的方式

    SpringBoot加載靜態(tài)資源的方式

    本篇文章主要介紹了SpringBoot加載靜態(tài)資源的方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • IDEA啟動tomcat項目報錯53820 socket closed問題及解決

    IDEA啟動tomcat項目報錯53820 socket closed問題及解決

    IDEA啟動Tomcat項目時報錯,原因是IDEA關(guān)閉時Tomcat未正常關(guān)閉,導致端口被占用,解決方法是通過任務(wù)管理器關(guān)閉占用高內(nèi)存的Java進程,通常是IDEA進程下面的,或者使用命令行找到PID并強制終止進程
    2024-12-12
  • SpringBoot靜態(tài)資源CSS等修改后再運行無效的解決

    SpringBoot靜態(tài)資源CSS等修改后再運行無效的解決

    這篇文章主要介紹了SpringBoot靜態(tài)資源CSS等修改后再運行無效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring boot隨機端口你都不會還怎么動態(tài)擴容

    Spring boot隨機端口你都不會還怎么動態(tài)擴容

    這篇文章主要介紹了Spring boot隨機端口你都不會還怎么動態(tài)擴容,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • mybatis和mybatisplus批量插入問題示例詳解

    mybatis和mybatisplus批量插入問題示例詳解

    最近在處理一個功能的時候,需要批量插入數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于mybatis和mybatisplus批量插入問題的相關(guān)資料,文中通過實例代碼介紹非常詳細,需要的朋友可以參考下
    2023-04-04
  • Java后端學習精華之TCP通信傳輸協(xié)議詳解

    Java后端學習精華之TCP通信傳輸協(xié)議詳解

    TCP/IP是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,它會保證數(shù)據(jù)不丟包、不亂序。TCP全名是Transmission Control Protocol,它是位于網(wǎng)絡(luò)OSI模型中的第四層
    2021-09-09

最新評論

页游| 凌源市| 鲜城| 资源县| 新源县| 武陟县| 辰溪县| 霍城县| 芦山县| 乐山市| 靖边县| 通榆县| 镇江市| 孟州市| 湖口县| 黄浦区| 丰城市| 台江县| 来宾市| 辽阳市| 高邮市| 博湖县| 衡阳市| 西乌珠穆沁旗| 迁安市| 达尔| 阿鲁科尔沁旗| 天镇县| 本溪| 临夏县| 马龙县| 宾阳县| 建始县| 辰溪县| 宁武县| 焦作市| 兰西县| 遂川县| 南皮县| 襄城县| 沙坪坝区|