步驟:
一:獲取到bean的class例項,方式分兩種,
1.通過spring注入的:通過spring上下文獲取到需要**執行的class例項
class selectsclass = springcontextutils.getbean("beanname").getclass();
2.沒使用spring注入的:通過class.forname初始化載入bean
class selectsclass= class.forname(tableselectsutil.class.getname());
二:通過方法名從class例項中獲取方法例項
method method = selectsclass.getmethod("getall", new class );
getmethod的第二個引數new class為引數型別,多個引數需要需要根據順序把引數型別依次放進class陣列,第乙個引數「getall」為需要呼叫的方法名。
三:通過method例項**執行方法並獲取返回值
//如果該方法中需要用到spring注入屬性
object result = (list>)method.invoke(selectsclass.newinstance(),
new object );
//如果該方法中不需要用到spring注入屬性
object result = (list>)method.invoke(null,
new object );
method的invoke方法代表執行該方法,第乙個引數是類的class例項,通過class的newinstance()方法可以初始例項(如果類中含有需要spring注入的屬性,只能通過spring上下文獲取例項),如果方法是靜態的則不需要初始化class,直接傳入null即可;第二個引數是該方法的引數,多個引數依次寫入new object{}即可。 java反射機制
private string getmethod catch instantiationexception e1 catch illegalacces ception e1 try catch illegalargumentexception e catch illegalacces ception...
Java反射機制
1.反射是指程式在執行時,可以通過反射機制拿到任何乙個類的內部所有資訊。2.可以獲得類的所有屬性資訊,包括私有屬性,並對其進行操作 3.可以獲得物件所對應的類 4.可以拿到本類,或父類中的方法,並且對其進行操作。常用方法 getname 獲得類對應的名稱 getdeclaredfields 獲得類中...
java 反射機制
當我們編寫的類生成的位元組碼檔案中的二進位制位元組流被類載入器載入到記憶體當中時,會在方法區產生乙個class物件,作為訪問這些類資訊的入口。假如我們編寫乙個person類,獲取class物件一般有3種方式 class有4個獲取字段資訊的方法,包括靜態變數和例項變數 所有的public欄位,包括其父...