【发布时间】:2013-03-23 01:45:07
【问题描述】:
当使用反射从另一个主方法调用 Java 类的主方法时,
Class thisClass = loader.loadClass(packClassName);
Method thisMethod = thisClass.getDeclaredMethod("main",String[].class);
thisMethod.invoke(null, new String[0]);
我应该创建 newInstance() 还是简单地调用 main(),因为它是静态的。
【问题讨论】:
-
是否有构造函数采用参数类型String[]?
-
main方法是静态的吗?如果是这样,为什么要创建该类的实例?如果不是,那么对invoke的调用是错误的。 -
实际上,当我调用非参数化方法时它可以正常工作,但在参数化方法中它不能正常工作......为什么会这样?
-
@RedSoxFan yah... 我想调用 main 方法及其参数为 String... s 或 String[] s
-
现在我明白了,java.lang.IllegalArgumentException:sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 的参数类型不匹配
标签: java reflection