<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java反射獲取屬性值

    文檔

    java反射獲取屬性值

    java反射獲取屬性值就是指反射獲取Java類的所有字段,包括所有分類中的字段。類自身的字段可直接通過方法getDeclaredFields或者getFields獲取,但父類中的字段暫時沒有發現直接獲取的方式。
    推薦度:
    導讀java反射獲取屬性值就是指反射獲取Java類的所有字段,包括所有分類中的字段。類自身的字段可直接通過方法getDeclaredFields或者getFields獲取,但父類中的字段暫時沒有發現直接獲取的方式。

    java反射獲取屬性值是怎樣的呢?一起來看下吧:

    反射獲取Java類的所有字段,包括所有父類中的字段。類自身的字段可直接通過方法getDeclaredFields()(獲取所有修飾符字段)或者getFields()(獲取public修飾的字段)獲取,但父類中的字段暫時沒有發現直接獲取的方式。 需要遞歸獲取所有的父類,然后獲取他們的字段,最終獲取到類的所有字段。?

    如果要獲取字段值,則需要設置字段可訪問:field.setAccessible(true);? field為reflect包下的Field類

    案例:

    1、父類

    package?com.carl.study.springboot.bean;
    ?
    import?lombok.Data;
    import?lombok.experimental.Accessors;
    ?
    /**
    ?*?@author?changez
    ?*?@desc
    ?*?@date?2019/3/10?11:30
    ?*/
    @Data
    @Accessors(chain?=?true)
    public?class?BeanBasic?{
    ?
    ?private?Integer?id;
    ?private?Long?createTime;
    ?private?Long?updateTime;
    }

    2、子類

    package?com.carl.study.springboot.bean;
    ?
    import?lombok.Data;
    import?lombok.EqualsAndHashCode;
    import?lombok.ToString;
    import?lombok.experimental.Accessors;
    ?
    /**
    ?*?@author?changez
    ?*?@desc
    ?*?@date?2019/3/10?11:17
    ?*/
    @Data
    @EqualsAndHashCode(callSuper?=?true)
    @ToString(callSuper?=?true)
    @Accessors(chain?=?true)
    public?class?Student?extends?BeanBasic{
    ?
    ?private?String?name;
    ?private?String?address;
    }

    3、測試類

    package?test.lombok;
    ?
    import?com.carl.study.springboot.bean.Student;
    import?org.junit.Test;
    ?
    import?java.lang.reflect.Field;
    import?java.util.ArrayList;
    import?java.util.Arrays;
    import?java.util.List;
    ?
    /**
    ?*?@author?changez
    ?*?@desc?Java反射獲取類的所有屬性.
    ?*?@date?2019/3/10?11:41
    ?*/
    public?class?LombokTest?{
    ?
    ?@Test
    ?public?void?getParentField(){
    ??Student?stu1?=?new?Student();
    ??stu1.setName("student-name")
    ???.setAddress("student1-address")
    ???.setId(1)
    ???.setCreateTime(20190310140423L)
    ???.setUpdateTime(20190310140423L)
    ??;
    ?
    ??Class?clazz?=?Student.class;
    ??List?allFields?=?new?ArrayList<>(100);
    ?
    ??//?獲取當前對象的所有屬性字段
    ??//?clazz.getFields():獲取public修飾的字段
    ??//?clazz.getDeclaredFields():?獲取所有的字段包括private修飾的字段
    ??allFields.addAll(Arrays.asList(clazz.getDeclaredFields()));
    ?
    ??//?獲取所有父類的字段,?父類中的字段需要逐級獲取
    ??Class?clazzSuper?=?clazz.getSuperclass();
    ?
    ??//?如果父類不是object,表明其繼承的有其他類。?逐級獲取所有父類的字段
    ??while?(clazzSuper?!=?Object.class)?{
    ???allFields.addAll(Arrays.asList(clazzSuper.getDeclaredFields()));
    ???clazzSuper?=?clazzSuper.getSuperclass();
    ??}
    ?
    ??allFields.stream().forEach(field?->?{
    ?
    ???//?設置字段可訪問,?否則無法訪問private修飾的變量值
    ???field.setAccessible(true);
    ???try?{
    ????//?獲取字段名稱
    ????String?fieldName?=?field.getName();
    ?
    ????//?獲取指定對象的當前字段的值
    ????Object?fieldVal?=?field.get(stu1);
    ????System.out.println(fieldName+"="+fieldVal);
    ???}?catch?(IllegalAccessException?e)?{
    ????e.printStackTrace();
    ???}
    ??});
    ?}
    }

    以上就是小編今天的分享,希望可以幫助到大家。

    文檔

    java反射獲取屬性值

    java反射獲取屬性值就是指反射獲取Java類的所有字段,包括所有分類中的字段。類自身的字段可直接通過方法getDeclaredFields或者getFields獲取,但父類中的字段暫時沒有發現直接獲取的方式。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    vue 調用子組件方法 python的range函數用法 js set去重 vue使用jquery python skimage armoury crate打不開 java process deque java linux 格式化u盤 js讀取文件 python 交集 object 轉list object轉bigdecimal java get和set方法 python中get函數用法 js set方法 mysql去重復 保留一條 rstudio使用教程 oracle coalesce python configparser模塊 python中find函數的用法 getclass方法 python中strip函數的用法 js class類 mysql time類型 python中sorted函數的用法 cad的基本命令 ubuntu卸載mysql js獲取隨機數 opencv安裝教程python python numpy教程 js獲取日期 python tkinter教程 java reentrantlock c語言struct用法 字符轉換成ascii碼 js date加一天 vue動態綁定style spring boot mysql配置 python 排序算法
    Top 思思re热免费精品视频66| 国产亚洲精品a在线无码| 久久精品人人槡人妻人人玩AV | 夜夜精品视频一区二区| 久久99精品国产| 亚洲国产精品一区二区第四页| 精品国产污污免费网站aⅴ| 国产午夜精品一二区理论影院| 国产精品第一页第一页| 精品久久久久久无码专区| 亚洲乱码国产乱码精品精| 国产精品免费视频一区| 亚洲国产成人99精品激情在线| 亚洲精品午夜国产VA久久成人| 国产suv精品一区二区6| 亚洲午夜成人精品无码色欲| 午夜精品成年片色多多| 国内精品久久久久影院日本| japanese乱人伦精品| 日韩精品无码人妻免费视频| 92国产精品午夜福利| 亚洲精品国产成人专区| 亚洲精品V欧洲精品V日韩精品| 午夜精品一区二区三区在线观看| 国产精品无码亚洲精品2021| 国产精品91在线| 91精品国产综合久久久久| 亚洲AV无码成人网站久久精品大| 久久久久一级精品亚洲国产成人综合AV区 | 亚洲&#228;v永久无码精品天堂久久 | 米奇777四色精品人人爽| 久久精品国产亚洲网站| 久久久精品久久久久特色影视| 精品一区中文字幕| 国内精品一区二区三区最新| 久久频这里精品99香蕉久 | 亚洲精品无码aⅴ中文字幕蜜桃| 99爱在线精品视频网站| 无码精品久久久天天影视| 老司机91精品网站在线观看 | 亚洲AV乱码久久精品蜜桃|