一直都在连jdbc中用到class.forname(),当用到xml动态解析分派的时候遇到了class名字符串无法作为class名实例化的问题,寻寻觅觅终于找到一个解决的办法:
public class dynamicloader{
public static void main(string args[]) throws exception{
class torun = class.forname(args[0]);
string[] newargs=scrubargs(args);
method mainmethod = findmain(torun);
mainmethod.invoke(null,new object[]{newargs});
}
private static string[] scruargs(string[],args){
string[] toreturn = new string[args.length-1];
for(int i=0;i<args.length;i++){
toreturn[i-1]=args[i].tolowercase();
}
return toreturn;
}
private static method findmain(class clazz) throw exception{
method[] method = class.getmethods();
for(int i=0;i<method.length;i++){
if(method[i].getname().equals(“main”))
return method[i];
}
return null;
}
}
再来个简单的测试程序:
public class echoit{
public static void main(string args[]){
for(int i=0;i<args.length;i++){
system.out.println(“echo arg”+i+” = “+args[i]);
}
}
}
都编译之后
java dynamicloader echo one two there
就可以看到效果了,既动态载入echo又给它传了三个参数:)
一个用Class.forName()做的动态装载小东东,有助于理解Class.forName()的应用-JSP教程,Java基础
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 一个用Class.forName()做的动态装载小东东,有助于理解Class.forName()的应用-JSP教程,Java基础
相关推荐
-      J2ME中的时间处理方法
-      J2ME播放声音流程简介
-      J2ME开发之手机键盘使用注意问题
-      J2ME 记录管理存储
-      MVC模式在j2me项目中的应用(二)
-      MVC模式在j2me项目中的应用(一)
-      J2ME中使用记录存储系统(RMS)存储信息
-      J2ME与MIDP开发(1)
