1. 程式人生 > >java中的反射機制中invoke典型用法

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

,"add", Class[] {Class.int,Class.int},

Object[] { new Integer(x), new Integer(y)})

}

}

Class Algorithm{

public int add(int a,int b){

return a+b;

}

}

上面程式碼簡潔地說明了invoke的使用,至於原理,這部分並不累述。