中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java內省的示例分析

發布時間:2021-12-27 13:58:56 來源:億速云 閱讀:110 作者:小新 欄目:編程語言

這篇文章主要介紹Java內省的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

下面我們就對內省做一下簡單介紹:

1.內省是java語言對bean類屬性、事件的一種處理方法

2.為什么要學內省?開發框架時,經常需要使用java對象的屬性來封裝程序的數據,每次都使用反射技術完成此類操作過于麻煩,所以sun公司開發了一套API,專門用于操作java對象的屬性。

3.內省訪問JavaBean屬性的兩種方式:

通過PropertyDescriptor類操作Bean的屬性

通過Introspector類獲得Bean對象的 BeanInfo,然后通過 BeanInfo 來獲取屬性的描述器( PropertyDescriptor ),通過這個屬性描述器就可以獲取某個屬性對應的 getter/setter 方法,然后通過反射機制來調用這些方法。

下面寫一下測試代碼

Java代碼

/*         * 通過Introspector類獲得Bean對象的 BeanInfo, 然后通過 BeanInfo 來獲取屬性的描述器(         * PropertyDescriptor ) 通過這個屬性描述器就可以獲取某個屬性對應的 getter/setter 方法,         * 然后通過反射機制來調用這些方法。         */        @Test        public void test() throws IntrospectionException, IllegalArgumentException,                 IllegalAccessException, InvocationTargetException {             Student st = new Student();             // 1、通過Introspector類獲得Bean對象的 BeanInfo,             BeanInfo entity = Introspector.getBeanInfo(Student.class);             // 2、然后通過 BeanInfo 來獲取屬性的描述器( PropertyDescriptor )             PropertyDescriptor pdrs[] = entity.getPropertyDescriptors();             // 3、通過這個屬性描述器就可以獲取某個屬性對應的 getter/setter 方法,             for (PropertyDescriptor pd : pdrs) {                 // System.out.println(pd.getName());                 /*                 * System.out.println(pd.getShortDescription());                 * System.out.println(pd.getDisplayName());                 */                if (pd.getName().equals("age")) {  //age是什么類型?                     Method md = pd.getWriteMethod();                     md.invoke(st, 12);                 }             }                  //      System.out.println(st.getAge());             }

bean類

Java代碼

package cn.csdn.Introspector;         public class Student {         private String name;         private int age;         public int getAge() {             return age;         }         public void setAge(int age) {             this.age = age;         }         public String getEmail() {             return email;         }         public void setEmail(String email) {             this.email = email;         }         private String email;         public String getXxx(){             return "Longmanfei";         }     }

以上是“Java內省的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金川县| 探索| 沅陵县| 平果县| 贵阳市| 玉林市| 库车县| 菏泽市| 新津县| 湛江市| 石台县| 介休市| 会宁县| 霍山县| 绩溪县| 革吉县| 江城| 界首市| 元江| 诸城市| 玉树县| 五常市| 巴中市| 同德县| 九龙城区| 万荣县| 巍山| 鄂托克旗| 土默特左旗| 阳春市| 红河县| 达孜县| 仁化县| 昌吉市| 兴山县| 镇平县| 徐州市| 大厂| 高要市| 洛宁县| 鲜城|