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

MyBatis 如何獲取子類的屬性

 更新時間:2021年08月25日 10:46:54   作者:火鍋技術(shù)棧  
這篇文章主要介紹了MyBatis 如何獲取子類的屬性,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MyBatis 獲取子類的屬性

這里有個model類:

基類

public class user {  
    public int getId() {
        return id;
    } 
 
    public void setId(int id) {
        this.id = id;
    } 
 
    private  int id;  
}

子類

public class vipUser extends user {
    public int getVip() {
        return vip;
    } 
 
    public void setVip(int vip) {
        this.vip = vip;
    } 
 
    private  int vip;
}

Dao 層方法參數(shù)為父類

Selet(user user)

Mapper.xml 參數(shù)也為父類

parameterType='user'
<if test="vip!=null">vipE=#{vip,jdbcType=int},</if>

這里可以獲取子類的屬性 vip;

Java 代碼實現(xiàn)父類獲取子類的所有屬性

void testuser(user user) throws IllegalAccessException {
Class clas= user.getClass();
/**
         * 返回一個 Field 對象,該對象反映此 Class 對象所表示的類或接口的指定已聲明字段(包括私有成員
         */
             Field[] fields = clas.getDeclaredFields();
             for (Field f : fields) {
             /**
             * 取消默認 Java 語言訪問控制檢查的能力
             */
            f.setAccessible(true);
            System.out.println("屬性名"+f.toString());  
            System.out.println("屬性值:"+f.getInt(user));  
        }
//            System.out.println(user.getClass().getName());  
    }

父類與子類的屬性,方法問題

1.子類繼承父類不可以繼承父類的私有屬性

以及不可以覆蓋父類的私有方法

2.子類不可以直接訪問父類的私有屬性,方法

類似 super.屬性名/super.方法名。但可以間接訪問

3.如果子類不曾覆蓋父類的方法

則訪問調(diào)用父類的方法等同于 super.方法名。在此方法中訪問與子類相同的屬性,實際上是訪問父類的屬性。----打破父類私有屬性子類不可以訪問。

同樣的如果相同屬性只有父類提供了get方法,子類未提供。則返回的是父類的屬性值。

4.如果在父類的方法采用反射機制

則調(diào)用的屬性一定是屬于子類的同名屬性,當(dāng)然也可以訪問父類的屬性。

public class Parent {
private String name = "5";
public String getInfo(){
        System.out.println(this); 
        return this.name;
}
public void get(){ 
    System.out.println(this); 
    Class aClass = this.getClass(); 
    //返回所有this對象的屬性這里是Children1的屬性,不包含繼承的字段 
    Field[] fields = aClass.getDeclaredFields(); 
    //返回父類的屬性,不包含繼承的字段 
    //aClass.getSuperclass().getDeclaredFields(); 
    //返回此類的所有字段,包含繼承的可訪問的字段 
    //aClass.getFields(); 
    for (Field field : fields) { 
    try { 
            System.out.println(field.get(this).toString()); 
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } 
    }
} 
public Parent(){ 
} 
public void print(){
    System.out.println("I am Parent!!!"); 
}
} 
public class Children1 extends Parent{ 
public String name = "6"; 
Children1(){
}  
@Override 
public void print(){ 
    System.out.println("I am children1"); 
} 
}  
public class Test {   
public static void main(String arsg[]){ 
    Children1 children = new Children1(); 
    //因為父類的方法沒有被覆蓋,所以調(diào)用的是父類的方法。返回父類的屬性值 
    System.out.println(children.getInfo()); 
    //內(nèi)部采用反射機制,因為實例化的是子類 
    children.get(); 
    } 
}

輸出:

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

相關(guān)文章

  • mybatis-plus使用@EnumValue處理枚舉類型的示例代碼

    mybatis-plus使用@EnumValue處理枚舉類型的示例代碼

    這篇文章主要介紹了mybatis-plus使用@EnumValue處理枚舉類型的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Spring中自動裝配的4種方式

    Spring中自動裝配的4種方式

    今天小編就為大家分享一篇關(guān)于Spring中自動裝配的4種方式,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • SpringBoot?讀取yml文件的多種方式匯總

    SpringBoot?讀取yml文件的多種方式匯總

    這篇文章主要介紹了SpringBoot讀取yml文件的幾種方式,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Java連接MySQL數(shù)據(jù)庫并實現(xiàn)數(shù)據(jù)交互的示例

    Java連接MySQL數(shù)據(jù)庫并實現(xiàn)數(shù)據(jù)交互的示例

    數(shù)據(jù)庫是非常重要的一種存儲格式,可以大大提高存儲效率,本文主要介紹了Java連接MySQL數(shù)據(jù)庫并實現(xiàn)數(shù)據(jù)交互的示例,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Java常用JVM參數(shù)實戰(zhàn)

    Java常用JVM參數(shù)實戰(zhàn)

    本文主要介紹了Java常用JVM參數(shù)實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java8如何構(gòu)建一個Stream示例詳解

    Java8如何構(gòu)建一個Stream示例詳解

    Java 8 是迄今為止在語義上改動上最大的一個平臺。下面這篇文章主要給大家介紹了關(guān)于Java8如何構(gòu)建一個Stream的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • Java實現(xiàn)基礎(chǔ)銀行ATM系統(tǒng)

    Java實現(xiàn)基礎(chǔ)銀行ATM系統(tǒng)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)基礎(chǔ)銀行ATM系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Java中List對象集合按對象中某字段進行排序舉例

    Java中List對象集合按對象中某字段進行排序舉例

    這篇文章主要給大家介紹了關(guān)于Java中List對象集合按對象中某字段進行排序的相關(guān)資料,我們在日常開發(fā)中也經(jīng)常會用到排序算法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • Java實現(xiàn)TCP互發(fā)消息

    Java實現(xiàn)TCP互發(fā)消息

    這篇文章主要為大家詳細介紹了Java實現(xiàn)TCP互發(fā)消息,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Java實現(xiàn)帶頭結(jié)點的單鏈表

    Java實現(xiàn)帶頭結(jié)點的單鏈表

    這篇文章主要為大家詳細介紹了Java實現(xiàn)帶頭結(jié)點的單鏈表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09

最新評論

丹东市| 景东| 新巴尔虎左旗| 兴安县| 宜州市| 永兴县| 龙泉市| 勐海县| 休宁县| 古蔺县| 迭部县| 盐池县| 双辽市| 屏南县| 鹤壁市| 芜湖市| 中阳县| 成安县| 仲巴县| 淳化县| 阿克苏市| 浦城县| 辰溪县| 东阿县| 长沙市| 仁化县| 涟源市| 永清县| 闸北区| 岢岚县| 揭东县| 五常市| 宁晋县| 天柱县| 福清市| 高尔夫| 西青区| 东莞市| 湾仔区| 巴林左旗| 通榆县|