說說反射的用途及實現
Java反射機制主要提供了以下功能:在運行時構造一個類的對象;判斷一個類所具有的成員變量和方法;調用一個對象的方法;生成動態代理。反射最大的應用就是框架
Java反射的主要功能:
- 確定一個對象的類
- 取出類的modifiers,數據成員,方法,構造器,和超類.
- 找出某個接口里定義的常量和方法說明.
- 創建一個類實例,這個實例在運行時刻才有名字(運行時間才生成的對象).
- 取得和設定對象數據成員的值,如果數據成員名是運行時刻確定的也能做到.
- 在運行時刻調用動態對象的方法.
- 創建數組,數組大小和類型在運行時刻才確定,也能更改數組成員的值.
反射的應用很多,很多框架都有用到
spring 的 ioc/di 也是反射….
javaBean和jsp之間調用也是反射….
struts的 FormBean 和頁面之間…也是通過反射調用….
JDBC 的 classForName()也是反射…..
hibernate的 find(Class clazz) 也是反射….
反射還有一個不得不說的問題,就是性能問題,大量使用反射系統性能大打折扣。怎么使用使你的系統達到最優就看你系統架構和綜合使用問題啦,這里就不多說了。