JAVA的内省机制(introspector)与反射机制(reflection)
生活随笔
收集整理的這篇文章主要介紹了
JAVA的内省机制(introspector)与反射机制(reflection)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://yangzhibin-java.iteye.com/blog/452068
JAVA的內省機制(introspector)與反射機制(reflection)
- 博客分類:
- j2se
相對而言,反射比內省更容易理解一點。用一句比較白的話來概括,反射就是讓你可以通過名稱來得到對象 ( 類,屬性,方法 ) 的技術,這種技術比內省機制使用范圍更廣泛。例如我們可以通過類名來生成一個類的實例;知道了方法名,就可以調用這個方法;知道了屬性名就可以訪問這個屬性的值。 內省是 Java 語言對 Bean 類屬性、事件的一種缺省處理方法。例如類 A 中有屬性 name, 那我們可以通過 getName,setName 來得到其值或者設置新的值。通過 getName/setName 來訪問 name 屬性,這就是默認的規則。 Java 中提供了一套 API 用來訪問某個屬性的 getter/setter 方法,通過這些 API 可以使你不需要了解這個規則(但你最好還是要搞清楚),這些 API 存放于包 java.beans 中。
一般的做法是通過類 Introspector 來獲取某個對象的 BeanInfo 信息,然后通過 BeanInfo 來獲取屬性的描述器( PropertyDescriptor ),通過這個屬性描述器就可以獲取某個屬性對應的 getter/setter 方法,然后我們就可以通過反射機制來調用這些方法。下面我們來看一個例子,這個例子把某個對象的所有屬性名稱和值都打印出來:
總結
以上是生活随笔為你收集整理的JAVA的内省机制(introspector)与反射机制(reflection)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring的log4j listene
- 下一篇: listagg 函数--oracle 1