91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

衡水市| 贵溪市| 文成县| 西贡区| 达拉特旗| 扎鲁特旗| 贡嘎县| 清镇市| 罗源县| 大丰市| 西和县| 营山县| 志丹县| 鹤岗市| 江门市| 定州市| 齐河县| 龙陵县| 皋兰县| 益阳市| 台山市| 祁东县| 平南县| 红原县| 隆子县| 永登县| 南投县| 尚义县| 花莲县| 乐都县| 南郑县| 龙州县| 华安县| 万全县| 镇远县| 玉山县| 东辽县| 凤山市| 上思县| 漳浦县| 六枝特区|