亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

原平市| 盈江县| 石屏县| 鲁山县| 江门市| 彭山县| 谷城县| 湘乡市| 云南省| 闸北区| 伊宁县| 汉阴县| 湄潭县| 博野县| 诸暨市| 永登县| 黑龙江省| 丰原市| 惠安县| 庄浪县| 阳山县| 双城市| 疏附县| 云安县| 云和县| 赤峰市| 建阳市| 荣昌县| 洛扎县| 额济纳旗| 南皮县| 镇沅| 合阳县| 固原市| 锦州市| 横山县| 黄大仙区| 黔江区| 保定市| 桂东县| 达拉特旗|