本帖最后由 王红潮 于 2012-9-10 18:41 编辑
我运行试了一下,有一下几个错误
public class ReflectionTest {
public static void main(String[] args) throws Exception {
//名字由执行时的参数传入,在runConfiger里设置;传入后字符串就在args[0]里
//第一步,由名字得到字节码
Class c = Class.forName(args[0]);
//第二步,由字节码获得main方法。第一个参数是方法名字,后面是可变参数,类型是Class
Method m = c.getMethod("main", String[].class);
//第三步,执行
m.invoke(c.newInstance(), (Object)new String[]{"1","2","3"});
}
}
首先invoke这里必须传入是哪个对象,而且数组传过去必须要封装要么前面加(Object)String[]{"1","2"}告诉编译器传进去的是个对象,要么用Object数组封装 new Object[]{new String[]{"1","2"}}
传入的路径用相对路径就可以 ,即 包名称. 类名称即可 Reflection.ReflectPrint
|