Method 類中 invoke方法的調用



















方法說明實例:
}
class ClassB{
public ClassB(){
System.out.println("this is ClassB");
}
public Object invokeMehton(Object owner,String methodName,Object[] args) throws Exception{
//根據methodName獲得owner里面的方法。args是對應方案參數。
Class wnerClass=owner.getClass();
Class[] argsClass=new Class[args.length];
for(int i=0,j=args.length;i<j;i++){
argsClass[i] = args[i].getClass();
}
Method method = ownerClass.getMethod(methodName, argsClass);
return method.invoke(owner, args);
}
}
輸出為
this is ClassB
300
outabccc
說明c調用Class方法成功。
import java.lang.reflect.Method;
public class ClassA {
//ClassA里面有add、和StringAdd兩個不同方法。c是ClassB的Object
ClassB c=new ClassB();
public void add(Integer param1, Integer param2) {
System.out.println(param1 + param2);
}
public void StringAdd(String abc){
System.out.println("out"+abc);
}
public static void main(String[] args){
ClassA a=new ClassA();
try {
a.c.invokeMehton(a, "add",new Object[] {new Integer(100),new Integer(200)});//反射調用方法add
a.c.invokeMehton(a, "StringAdd",new Object[] {new String("abccc")});//反射調用方法StringAdd
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
posted on 2012-05-24 18:54 youngturk 閱讀(606) 評論(0) 編輯 收藏 所屬分類: Java基礎 、java連接數據庫解析