java 內省

內省

JavaBean是一個特殊的java類,jdk提供的對javabean的操作的API就是內省.對javabean的操作無外乎對屬性的get和set,而這其實就是調用JavaBean的對應的set和get方法的過程,因此把javaBean當做普通類來處理勢必很麻煩,因爲我們很難準確的定義各屬性所對應的set和get方法名,顯然內省提供瞭解決此問題的方法

PropertyDescriptor描述Java Bean 通過一對存儲器方法導出的一個屬性.它的三個構造方法

String propertyName,PropertyDescriptor(Class<?> beanClass,String writeMethodName)

String propertyName,Method writeMethod)

顯然在我們不能很容易的確定一個JavaBean的屬性的時候,我們更應該使用第一個構造方法String propertyName,Class<?> beanClass)

我們只要傳遞操作的JavaBean類的Class對象和屬性的名字這兩個變量就可以了,而不必考慮這個屬性的get和set方法是什麼樣的.

當獲得PropertyDescriptor的對象的時候我們可以調用對象的getReadMethd和getWriteMethod來獲取JavaBean屬性的一對存儲器方法對象,即get和set方法對象.接着就可以用反射的方法來調用這些方法.

BeanUtils是apa

BeanUtils.copyProperties(Object dest,Object orig)拷貝屬性

BeanUtils.describe(Object bean)將指定的bean轉換爲Map類型

BeanUtils.setProperty()與PropertyUtils.setProperty()的區別是,BeanUtils爲JavaBean屬性的值賦值類型是字符串,而PropertyUtils則是屬性的原本類型

BeanUtils還支持屬性的延伸,若BeanUtils操作的JavaBean對象bean的一個屬性date是一個類的對象,而這個類也可以當做一個JavaBean類看待,並且有屬性x,那麼我們可以在用BeanUtils操作bean時延伸到date的x屬性,如BeanUtils.getProperty(bean,date.x).

BeanUtils是一個功能強大的工具包,可以在以後的使用中查詢BeanUtils的api文檔來了解各個方法的詳細用法.

che提供的操作JavaBean的工具包,包含了多種對JavaBean操作的方法.如:

BeanUtils.setProperty(Object obj,String PropertyName,String PropertyValue)設置JavaBean的屬性值;

BeanUtils.getProperty(Object obj,String PropertyName)獲取JavaBean的屬性值;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章