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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 我叫MT 于 2014-3-2 15:22 编辑
  1. class DemoER
  2. {
  3. public static void main(String[] args)
  4. {
  5. String startingClassName = args[0];
  6. Method methodCharAt2 = Class.forName(startingClassName).getMethod("main", String[].class);
  7. //main方法是静态的,invoke()里第一个参数就不用传递对象
  8. //俩次打包,1.5之后后自动拆包,一次打包会被拆成三份,而这里只能传一份
  9. methodCharAt2.invoke(null,new Object[]{new String[]{"111","222","333"}});
  10. //强制转换,相当于打了个死包,不会被拆
  11. //methodCharAt2.invoke(null,(Object)new String[]{"111","222","333"});
  12. }
  13. }
  14. class TestArguments
  15. {
  16. public static void main(String[]args)
  17. {
  18. for(String arg:args)
  19. {
  20. System.out.println(arg);
  21. }
  22. }
  23. }
复制代码
DemoER.java:6: 错误: 找不到符号
                Method methodCharAt2 = Class.forName(startingClassName).getMetho
d("main", String[].class);
                ^
  符号:   类 Method
  位置: 类 DemoER
1 个错误

什么地方错了?怎么解?
关于反射这块的,main方法的反射

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

2 个回复

倒序浏览
这样写一下试一试 Class.forName(startClassName).getMethod("main", String[].class);
把starting 去掉ing 应该就没问题了。
回复 使用道具 举报
虽然楼主是五天前发的帖子,不知道楼主解决问题了没有,但是仍然想和楼主探讨一下!
在楼主的代码中:
Method methodCharAt2 = Class.forName(startingClassName).getMethod("main", String[].class);
红色代码得到的是String这个类的字节码文件,通过他无法得到一个名叫“main”的方法,所以会报错!
以下是我变动以后的代码:
import java.lang.reflect.Method;
class DemoER {
        public static void main(String[] args) throws Exception {
                //String startingClassName = args[0];
                System.out.println(args[0]);  // 此处可以通过主函数传值的方式传入args[0];
                System.out.println("这是DemeER类中的主函数哟!");       
        }
}
public class TestArguments {
        public static void main(String[] args) throws Exception {
                Method methodCharAt2 = DemoER.class.getMethod(
                                "main", String[].class);
                // main方法是静态的,invoke()里第一个参数就不用传递对象
                // 俩次打包,1.5之后后自动拆包,一次打包会被拆成三份,而这里只能传一份
                methodCharAt2.invoke(null, null);       
        }
}

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