話(huà)不多說(shuō)了,直接上代碼,記錄一哈,以后忘了還可以查看查看。
package com.xjsx.reflect;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Invoke {
public int add(int a,int b){
return a + b;
}
public String echo(String message){
return "Hello" + message;
}
public static void main(String[] args) {
try {
Class<?> classType = Invoke.class;
Object invoke = classType.newInstance();
Method addMethod = classType.getMethod("add", new Class<?>[]{int.class,int.class});
Object result = addMethod.invoke(invoke, new Object[]{1,2});
System.out.println((Integer)result);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
Java反射步驟:
一、獲取要調(diào)用的類(lèi)。有幾種方式(不詳細(xì)描述)
二、創(chuàng)建該類(lèi)的實(shí)例。這個(gè)會(huì)在后面使用。
三、用getXXX得到相應(yīng)的XXX,里面的參數(shù)要注意,
四、哪個(gè)類(lèi)執(zhí)行這個(gè)得到的方法,返回一個(gè)Object類(lèi)型。
五、現(xiàn)在就可以對(duì)結(jié)果進(jìn)行操作了。