java中的反射機制中invoke典型用法
java中的反射機制通過invoke方法來實現,這中間主要是是通過一下幾個函式實現的
Class.forName ("類名")
Class.forName ("類名").newInstance
Class.getMethod ("呼叫的方法名",class[]{引數類列表})
instance.getClass
Method.invoke ("物件名","引數封裝成的物件")
具體怎麼實現,讓我們來看一個簡單的例子:
Class InvokeTest{
private static String algorithm = "Algorithm";
Object invokeMethod(object instance,String fun, Class[] paras, Object[] paraValue){
Object result = null;
Method method;
try{
method = instance.getClass.getMethod(fun, paras);
result = method.invoke(instance, paraValue);
}catch(Exception e) {
e.printStackTrace();
result = null;
}
}
public static void main(){
int x= 10,y=20;
invokeMethod(Class.forName(algorithm),newInstance
Object[] { new Integer(x), new Integer(y)})
}
}
Class Algorithm{
public int add(int a,int b){
return a+b;
}
}
上面程式碼簡潔地說明了invoke的使用,至於原理,這部分並不累述。