黑马程序员技术交流社区
标题:
关于反射 Method出错
[打印本页]
作者:
wudongzhe
时间:
2013-2-20 18:03
标题:
关于反射 Method出错
本帖最后由 吴东泽 于 2013-2-20 23:18 编辑
代码如下报错,找不到原因。
package net.csdn.a;
import java.lang.reflect.Method;
public class MethodDemo {
/**
* @param args
* @throws Exception
* @throws SecurityException
* @throws NoSuchMethodException
*/
public static void main(String[] args) throws NoSuchMethodException, SecurityException, Exception {
//第一种调用方法
MethodDemo2.main(new String[]{"q","c"});
//method方法
String className=args[0];
Method mainMethod=Class.forName(className).getMethod("main", String.class);
mainMethod.invoke(null,(Object)new String[]{"q","c"});
}
}
class MethodDemo2{
public static void main(String[] args){
for(String arg:args){
System.out.println(arg);
}
}
}
作者:
wudongzhe
时间:
2013-2-20 18:04
错误代码:
Exception in thread "main" java.lang.NoSuchMethodException: net.csdn.a.MethodDemo2.main(java.lang.String)
at java.lang.Class.getMethod(Unknown Source)
at net.csdn.a.MethodDemo.main(MethodDemo.java:19)
作者:
黄锦成
时间:
2013-2-20 18:22
main方法的参数是String[]类型的,不是String,你应该使用
Method mainMethod=Class.forName(className).getMethod("main", String[].class);
作者:
寇弘禄
时间:
2013-2-20 18:27
public class MethodDemo {
/**
* @param args
* @throws Exception
* @throws SecurityException
* @throws NoSuchMethodException
*/
public static void main(String[] args) throws NoSuchMethodException, SecurityException, Exception {
//第一种调用方法
MethodDemo2.main(new String[]{"q","c"});
//method方法
String className=args[0];
//这个className为什么是args[],应该改成"MethodDemo2"吧
Method mainMethod=Class.forName(className).getMethod("main", String.class);
//这个地方应该是String[].class
mainMethod.invoke(null,(Object)new String[]{"q","c"});
}
}
class MethodDemo2{
public static void main(String[] args){
for(String arg:args){
System.out.println(arg);
}
}
}
测完运行结果是
q
c
q
c
作者:
wudongzhe
时间:
2013-2-20 23:21
嗯谢谢啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2