今天看到的好文章和大家分享一下:
http://www.internetism.org/qbbs/showannounce.asp?boardid=1&rootid=375&id=375
http://www.internetism.org/qbbs/showannounce.asp?boardid=1&rootid=375&id=376
下面是我修改了一下的代码:
package testclass;
public class class1 { public class1(){}
public int add(int a,int b){ return a+b; }
}
package dyn_callmethod;
import java.lang.reflect.*;
import testclass.class1;
public class callclass {
public callclass() {
}
public static void main(string args[]){
try{
class cls = class.forname("testclass.class1");
system.out.println("load the target class");
class partypes[] = new class[2];
partypes[0] = integer.type;
partypes[1] = integer.type;
method meth = cls.getmethod("add", partypes);
system.out.println("get the method of the class");
//testclass.class1 methobj = new testclass.class1(); ///////////////////////////////////////////////////// //class const = class.forname("testclass.class1"); class par[] = null; constructor ct = cls.getconstructor(par);//因为class1的构造函数是无参的所以我就给getconstructor
输入了一个为null的class数组做参数 /////////////////////////////////////////////////////
object arglist[] = new object[2];
arglist[0] = new integer(37);
arglist[1] = new integer(47);
//object retobj = meth.invoke(methobj, arglist); object retobj = meth.invoke(ct.newinstance(null), arglist);
integer retval = (integer)retobj;
system.out.println(retval.intvalue());
}
catch(exception e){
system.err.println(e);
}
}
}
