天天看點

黑馬程式員-張老師基礎加強3-内省

内省: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)