|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
一直都在连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又给它传了三个参数:) 返回类别: 教程 上一教程: Java连接各种数据库的实例 下一教程: MDA 与实现 MDA 的 Rational 工具 RSA ?? RSA“尝鲜会”归来 您可以阅读与"一个用Class.forName()做的动态装载小东东,有助于理解Class.forName()的应用"相关的教程: · 一个用JSP做的日历 · Java动态调用类方式的应用 · Java数据对象(JDO)的应用 · 基于JSP的动态网站开发技术 · JAVA数据流的应用 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |