欢迎光临
我们一直在努力

一个用Class.forName()做的动态装载小东东,有助于理解Class.forName()的应用-JSP教程,Java基础

建站超值云服务器,限时71元/月

一直都在连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又给它传了三个参数:)

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 一个用Class.forName()做的动态装载小东东,有助于理解Class.forName()的应用-JSP教程,Java基础
分享到: 更多 (0)

相关推荐

  • 暂无文章