一、Java反射框架主要提供以下功能:
1.在運行時判斷任意一個對象所屬的類;
2.在運行時構造任意一個類的對象;
3.在運行時判斷任意一個類所具有的成員變量和方法(通過反射甚至可以調用private方法);
4.在運行時調用任意一個對象的方法
二、主要用途 :
1、反射最重要的用途就是開發各種通用框架。
三、基本反射功能的實現(反射相關的類一般都在java.lang.relfect包里):
1、獲得Class對象
使用Class類的forName靜態方法,直接獲取某一個對象的class, 調用某個對象的getClass()方法
2、判斷是否為某個類的實例
用instanceof關鍵字來判斷是否為某個類的實例
3、創建實例
使用Class對象的newInstance()方法來創建Class對象對應類的實例。
先通過Class對象獲取指定的Constructor對象,再調用Constructor對象的newInstance()方法來創建實例。
4、獲取方法
getDeclaredMethods()
5、獲取構造器信息
getDeclaredMethods()
getMethods()
getMethod()
6、獲取類的成員變量(字段)信息
getFiled: 訪問公有的成員變量
getDeclaredField:所有已聲明的成員變量。但不能得到其父類的成員變量
getFileds和getDeclaredFields用法
7、調用方法
invoke()
8、利用反射創建數組
Array.newInstance()