1. 程式人生 > >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 層方法引數為父類
Selet(user user)


Mapper.xml  引數也為父類


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


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


Java 程式碼實現父類獲取子類的所有屬性


   
 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());


    }