#Java內省(Introspector)java
Java內省技術專門用來操做JavaBean的屬性。框架
- 爲何要學內省?
- 開發框架時,常常須要使用java對象的屬性來封裝程序的數據,每次都使用反射技術完成此類操做過於麻煩,因此sun公司開發了一套API,專門用於操做java對象的屬性
- 什麼是Java對象的屬性和屬性的讀寫方法?
- 字段與屬性的區別
- 一個類有幾個屬性取決於讀取器和修改器
- 一個類擁有的屬性,不要忘記getClass()方法
- 內省訪問JavaBean屬性的兩種方式
- 經過PropertyDescriptor類操做Bean的屬性
- 經過Introspector類得到Bean對象的 BeanInfo,而後經過 BeanInfo 來獲取屬性的描述器( PropertyDescriptor ),經過這個屬性描述器就能夠獲取某個屬性對應的 getter/setter 方法,而後經過反射機制來調用這些方法
#BeanUtils框架工具
Sun公司的內省API過於繁瑣,因此Apache組織結合不少實際開發中的應用場景開發了一套簡單、易用的API操做Bean的屬性——BeanUtils對象
- Beanutils工具包的經常使用類:
- BeanUtils
- PropertyUtils
- ConvertUtils.regsiter(Converter convert, Class clazz)
- 自定義轉換器
BeanUtils對於8中基本數據類型是直接轉換的,可是對於複雜類型就不行了,須要咱們自定義類型轉換器才能夠。 使用Map填充一個Bean,拷貝一個Bean到另外一個Beanip