亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Lombok子類(lèi)繼承父類(lèi),父類(lèi)屬性不生效問(wèn)題及解決

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

使用Lombok子類(lèi)繼承父類(lèi),父類(lèi)屬性不生效

子類(lèi)增加:

@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;
}

問(wèn)題解決~~~~

Lombok 繼承時(shí)應(yīng)注意的點(diǎn)

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

即它最終能夠達(dá)到的效果是:

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

繼承時(shí)的@Data

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

要注意@EqualsAndHashCode注解與@ToString注解默認(rèn)情況下是忽略父類(lèi)的成員變量的,測(cè)試代碼如下:

@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("上海大學(xué)");
    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),上述的兩個(gè)實(shí)例沒(méi)有對(duì)比父類(lèi)的成員變量是否相同,僅僅對(duì)比的type字段的值,所以是true。同理,toString方法是不會(huì)打印父類(lèi)的成員的。

使父類(lèi)成員變量參與到邏輯中

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

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

打印結(jié)果

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

注意:

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

總結(jié)

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

相關(guān)文章

  • springboot post接口接受json時(shí),轉(zhuǎn)換為對(duì)象時(shí),屬性都為null的解決

    springboot post接口接受json時(shí),轉(zhuǎn)換為對(duì)象時(shí),屬性都為null的解決

    這篇文章主要介紹了springboot post接口接受json時(shí),轉(zhuǎn)換為對(duì)象時(shí),屬性都為null的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 啟動(dòng)SpringBoot報(bào)錯(cuò)Input length = 1問(wèn)題及解決

    啟動(dòng)SpringBoot報(bào)錯(cuò)Input length = 1問(wèn)題及解決

    這篇文章主要介紹了啟動(dòng)SpringBoot報(bào)錯(cuò)Input length = 1問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • SpringBoot+URule實(shí)現(xiàn)可視化規(guī)則引擎的方法示例

    SpringBoot+URule實(shí)現(xiàn)可視化規(guī)則引擎的方法示例

    規(guī)則引擎其實(shí)是一種組件,它可以嵌入到程序當(dāng)中,將程序復(fù)雜的判斷規(guī)則從業(yè)務(wù)代碼中剝離出來(lái),使得程序只需要關(guān)心自己的業(yè)務(wù),而不需要去進(jìn)行復(fù)雜的邏輯判斷,本文給大家介紹了SpringBoot+URule實(shí)現(xiàn)可視化規(guī)則引擎的方法示例,需要的朋友可以參考下
    2024-12-12
  • SpringBoot與Spring中數(shù)據(jù)緩存Cache超詳細(xì)講解

    SpringBoot與Spring中數(shù)據(jù)緩存Cache超詳細(xì)講解

    我們知道內(nèi)存讀取速度遠(yuǎn)大于硬盤(pán)讀取速度,當(dāng)需要重復(fù)獲取相同數(shù)據(jù)時(shí),一次一次的請(qǐng)求數(shù)據(jù)庫(kù)或者遠(yuǎn)程服務(wù),導(dǎo)致在數(shù)據(jù)庫(kù)查詢(xún)或者遠(yuǎn)程方法調(diào)用上小號(hào)大量的時(shí)間,最終導(dǎo)致程序性能降低,這就是數(shù)據(jù)緩存要解決的問(wèn)題,學(xué)過(guò)計(jì)算機(jī)組成原理或者操作系統(tǒng)的同學(xué)們應(yīng)該比較熟悉
    2022-10-10
  • java實(shí)現(xiàn)簡(jiǎn)單的圖書(shū)管理系統(tǒng)

    java實(shí)現(xiàn)簡(jiǎn)單的圖書(shū)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單的圖書(shū)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java數(shù)據(jù)結(jié)構(gòu)之并查集的實(shí)現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)之并查集的實(shí)現(xiàn)

    并查集是一種用來(lái)管理元素分組情況的數(shù)據(jù)結(jié)構(gòu)。并查集可以高效地進(jìn)行如下操作。本文將通過(guò)Java實(shí)現(xiàn)并查集,感興趣的小伙伴可以了解一下
    2022-01-01
  • 詳解Java ArrayList類(lèi)

    詳解Java ArrayList類(lèi)

    這篇文章主要介紹了Java ArrayList類(lèi)的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 詳解MyBatis特性之動(dòng)態(tài)SQL

    詳解MyBatis特性之動(dòng)態(tài)SQL

    動(dòng)態(tài) SQL 是 MyBatis 的強(qiáng)大特性之一,這篇文章我們將結(jié)合動(dòng)態(tài)SQL完成更加復(fù)雜的 SQL 操作,文章通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • Java實(shí)現(xiàn)字符串反轉(zhuǎn)的常用方法小結(jié)

    Java實(shí)現(xiàn)字符串反轉(zhuǎn)的常用方法小結(jié)

    在Java中,你可以使用多種方法來(lái)反轉(zhuǎn)字符串,這篇文章主要為大家整理了幾種常見(jiàn)的反轉(zhuǎn)字符串的方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • SpringBoot整合thymeleaf 報(bào)錯(cuò)的解決方案

    SpringBoot整合thymeleaf 報(bào)錯(cuò)的解決方案

    這篇文章主要介紹了SpringBoot整合thymeleaf 報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論