一、利用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);就可以了
本文介绍了如何使用Java反射机制通过Class.forName方法动态加载类并实例化对象,进一步通过反射调用对象的方法,包括获取方法调用入口及执行指定方法的具体步骤。
2万+

被折叠的 条评论
为什么被折叠?



