java中的内省 (Introspector)
2019獨角獸企業重金招聘Python工程師標準>>>
2、JavaBean:》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)一種特殊類,傳遞數據信息,成員方法用于訪問自身私有字段,方法名符合某種命名規則;
(2)倆模塊傳遞信息,使用JavaBean(值對象(Value Object),或“VO”);
(3)信息存儲在私有變量中,通過set()、get()獲得;
3、什么是內省(Introspector):》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)JDK提供一套 API 用來訪問某個屬性的 getter/setter 方法;
(2)java語言對JavaBean類的屬性、事件的一種缺省處理方法;
4、PropertyDescriptor類表示JavaBean類通過存儲器導出一個屬性。主要方法:》》》》》》》
??? 1. getPropertyType(),獲得屬性的Class對象;
??? 2. getReadMethod(),獲得用于讀取屬性值的方法;
????????? ?3.getWriteMethod(),獲得用于寫入屬性值的方法;
??? 3. hashCode(),獲取對象的哈希值;
??? 4. setReadMethod(Method readMethod),設置用于讀取屬性值的方法;
??? 5. setWriteMethod(Method writeMethod),設置用于寫入屬性值的方法。
5、Introspector類:》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)封裝JavaBean屬性進行操作;
(2)調用BeanInfo beanInfo=Introspector.getBeanInfo(),將一個類當成是JavaBean;
(3)PropertyDescriptor[] proDescrtptors=beanInfo.getPropertyDescriptors();
6、BeanUtils:》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)內省操作非常繁瑣,所以Apache開發了一套簡單、易用的API操作Bean屬性:BeanUtils工具包;
(2)org.apache.commons.beanutils.BeanUtils;
(3)BeanUtils.setProperty(userInfo,"age",8);
7、BeanUtils特點:》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)對基本類型自動轉換;
(2)引用類型類中必須有對象,不能是null;
8、struts就用了內省機制,有set方法就有屬性,不需要成員變量;》》》》》》》》》》》》》
9、java中的反射(reflection):》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
(1)運行時獲取一個類的所有信息,包括.class的任何定義的信息(成員 變量,成員方法,構造器等);
(2)可以操縱類的字段、方法、構造器等部分;
(3)內省基于反射實現,主要用于操作JavaBean,獲取bean的getter/setter;
轉載于:https://my.oschina.net/u/3847203/blog/1808712
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的java中的内省 (Introspector)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7、字典和string的用法
- 下一篇: java的面向对象的四大特征