一、利用Class.froName方法
eg:
try {
Class cl = Class.forName("edu.buaa.etei.wsrv.test.SonClass");
FatherClass cls = (FatherClass) cl.newInstance();
cls.test();
} catch(Exception e ){}
二、结合Java的反射机制
eg:
import
java
.lang.reflect.*;
Stirng className = "test.Test";
try {
Class cla = Class.forName(className);
// 得到test()方法的调用入口。
Method method = cla.getMethod("test", null);
// 用invoke执行test方法,ret是返回值(如果test方法返回void,则ret==null)
Object ret = method.invoke(cla.newInstance(), null );
}catch(Exception e ){}
说明:
Method的invoke就好比是c语言中获得方法的指针一样!
一般步骤是,首先声明你所要调用方法的参数的类类型数组
如果你的方法要使用一个int型数据作为参数,那么
Class[] args={Integer.class};
然后,使用classname加载该类Class myclass1 = Class.forName("aaa");
接着Method mymethod1 = myclass1.getMethod("methodname",args);
最后声明方法参数Object args2={new Integer(5)};
mymethod1.invoke(myclass1.newInstance(),args2);就可以了