A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wudongzhe 中级黑马   /  2013-2-20 18:03  /  1460 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴东泽 于 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);
                }
        }
}

评分

参与人数 1黑马币 +9 收起 理由
李培根 + 9 神马都是浮云

查看全部评分

4 个回复

倒序浏览
错误代码:
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)
回复 使用道具 举报
main方法的参数是String[]类型的,不是String,你应该使用
Method mainMethod=Class.forName(className).getMethod("main", String[].class);

评分

参与人数 1黑马币 +9 收起 理由
李培根 + 9 赞一个!

查看全部评分

回复 使用道具 举报
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

评分

参与人数 1黑马币 +9 收起 理由
李培根 + 9 赞一个!

查看全部评分

回复 使用道具 举报
嗯谢谢啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马