真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java內(nèi)省的示例分析

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

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的磐安網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

下面我們就對(duì)內(nèi)省做一下簡(jiǎn)單介紹:

1.內(nèi)省是java語(yǔ)言對(duì)bean類屬性、事件的一種處理方法

2.為什么要學(xué)內(nèi)省?開(kāi)發(fā)框架時(shí),經(jīng)常需要使用java對(duì)象的屬性來(lái)封裝程序的數(shù)據(jù),每次都使用反射技術(shù)完成此類操作過(guò)于麻煩,所以sun公司開(kāi)發(fā)了一套API,專門(mén)用于操作java對(duì)象的屬性。

3.內(nèi)省訪問(wèn)JavaBean屬性的兩種方式:

通過(guò)PropertyDescriptor類操作Bean的屬性

通過(guò)Introspector類獲得Bean對(duì)象的 BeanInfo,然后通過(guò) BeanInfo 來(lái)獲取屬性的描述器( PropertyDescriptor ),通過(guò)這個(gè)屬性描述器就可以獲取某個(gè)屬性對(duì)應(yīng)的 getter/setter 方法,然后通過(guò)反射機(jī)制來(lái)調(diào)用這些方法。

下面寫(xiě)一下測(cè)試代碼

Java代碼

/*         * 通過(guò)Introspector類獲得Bean對(duì)象的 BeanInfo, 然后通過(guò) BeanInfo 來(lái)獲取屬性的描述器(         * PropertyDescriptor ) 通過(guò)這個(gè)屬性描述器就可以獲取某個(gè)屬性對(duì)應(yīng)的 getter/setter 方法,         * 然后通過(guò)反射機(jī)制來(lái)調(diào)用這些方法。         */        @Test        public void test() throws IntrospectionException, IllegalArgumentException,                 IllegalAccessException, InvocationTargetException {             Student st = new Student();             // 1、通過(guò)Introspector類獲得Bean對(duì)象的 BeanInfo,             BeanInfo entity = Introspector.getBeanInfo(Student.class);             // 2、然后通過(guò) BeanInfo 來(lái)獲取屬性的描述器( PropertyDescriptor )             PropertyDescriptor pdrs[] = entity.getPropertyDescriptors();             // 3、通過(guò)這個(gè)屬性描述器就可以獲取某個(gè)屬性對(duì)應(yīng)的 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內(nèi)省的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


文章標(biāo)題:Java內(nèi)省的示例分析
當(dāng)前網(wǎng)址:http://weahome.cn/article/pghhsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部