内省:javaBean
JavaBean是一種特殊的Java類,主要用于傳遞資料資訊,這種java類中的方法主要用于通路私有的字段,且方法名符合某種命名規則。
JavaBean的屬性是根據其中的setter和getter方法來确定的,而不是根據其中的成員變量。如果方法名為setId,中文意思即為設定id,去掉set字首,剩餘部分就是屬性名,如果剩餘部分的第二個字母是小寫的,則把剩餘部分的首字母改成小的。
一、setId()的屬性名?id
二、isLast()的屬性名?last
三、setCPU的屬性名是什麼??CPU
四、getUPS的屬性名是什麼??UPS
PropertyDescriptor類.
常用方法
Method getReadMethod()
獲得應該用于讀取屬性值的方法。 對應get()方法.
Method getWriteMethod()
獲得應該用于寫入屬性值的方法。 對應set()方法.
構造函數 :PropertyDescriptor(String
propertyName, Class<?> beanClass)
參數:要查找的屬性名,和其所屬的類
練習:擷取一個類中的Age的值
類 PropertyDescriptor:PropertyDescriptor 描述 Java Bean
通過一對存儲器方法導出的一個屬性。
注意:使用反射和内省擷取成員的差別是:反射需要知道方法的名字和參數,而内省不需要。
Beanutils工具包
Beanttils.getProperty(Object bean,String name)
Beanttils.getProperty(Object bean,String name,String value)
這連個方法接收都是字元串,因為在javaWeb中通過;浏覽器傳輸帶資料都是字元串形式
beanutils方法的應用
BeanUtils.setProperty(rf1, "x",
"9");//數字用字元串形式表示。
BeanUtils.setProperty(rf1,
"birthday.time","111");//可以設定人的頭的眼睛的顔色,逐級設定。
map對象和beanutils之間的互相轉換。
java1.7 Map map = {map,key,value};
BeanUtils.setProperty(map, key, value)