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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭飞 中级黑马   /  2014-6-12 00:41  /  1589 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用EditPlus  可编译运行出正确结果。
用MyEclipse 却总是不对,

纠结了一晚上,就是想整对了。
EditPlus源代码:
  1. import java.lang.reflect.*;
  2. class Test
  3. {
  4.         public static void main(String[] args) throws Exception
  5.         {
  6.                 String className = args[0];

  7.                 Method method =
  8.                         Class.forName(className).getMethod("main",String[].class);
  9.                
  10.                 method.invoke(null,(Object)new String[]{"5435","432","321"});

  11.         }
  12. }


  13. class changMain
  14. {
  15.         public static void main(String[] args)
  16.         {
  17.                 for(String arg : args){
  18.                         System.out.println(arg);
  19.                 }
  20.         }
  21. }
复制代码


其实都是对的。就是在MyEclipse中run 的时候先  Arguments 要设定 changMain   

现在就是:就是出不来结果。
MyEclipse中源代码。
一try  就挂了。
  1. package com.itheima.day2;

  2. import java.lang.reflect.*;
  3. public class ReflectTest1 {

  4.         /**
  5.          * @param args
  6.          */
  7.         public static void main(String[] args) {
  8.                 // TODO Auto-generated method stub
  9.         System.out.println("222222");
  10.                 try{
  11.                         /*                                String className = args[0];
  12.                        
  13.                         Method me = Class.forName(className).getMethod("main",String[].class);
  14.                        
  15.                         //me.invoke(null, (Object)new String[]{"4324","333"});
  16.                         me.invoke(null, new Object[]{new String[]{"4324","333"}});
  17.                         System.out.println("111111");*/
  18.                         String className = args[0];
  19.        
  20.                         Method method =
  21.                                 Class.forName(className).getMethod("main",String[].class);
  22.                        
  23.                         method.invoke(null,(Object)new String[]{"5435","432","321"});
  24.                        
  25.                 }
  26.                 catch(Exception e){
  27.                         throw new RuntimeException("99");
  28.                 }
  29.        
  30.                
  31.                
  32.         }

  33. }
  34. class CaoNimaAA {

  35.         /**
  36.          * @param args
  37.          */
  38.                 public static void main(String[] args) {
  39.                         // TODO Auto-generated method stub
  40.                         for(String arg : args){
  41.                                 System.out.println(arg);
  42.                         }
  43.         }

  44. }
复制代码


烦死人了。求点明啊!~!~!~

评分

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

查看全部评分

5 个回复

倒序浏览
什么提示?我刚好也看到这个地方 ,你抛出的异常对吗
回复 使用道具 举报
会说话的木头 发表于 2014-6-12 01:02
什么提示?我刚好也看到这个地方 ,你抛出的异常对吗

抛RuntimeException 是没错的,

不论抛这个,还是在  方法上抛 Exception 都 一样。

挺纳闷儿的。
回复 使用道具 举报
彭飞 发表于 2014-6-12 15:59
抛RuntimeException 是没错的,

不论抛这个,还是在  方法上抛 Exception 都 一样。

问题解决了 ,忘记复写hasCode和equal方法了
回复 使用道具 举报
会说话的木头 发表于 2014-6-12 16:16
问题解决了 ,忘记复写hasCode和equal方法了

哥们儿,你确定? 贴上您的代码给看看。

这只是 利用反射 调用一个类的主函数  

在普通软件上面的代码是可以执行的,
只是这个高级软件, 有点迷糊。

还有,完全  没有牵扯到hasCode和equal方法   

你说的是后面的视频,简单小框架接收不确定集合类型吧。 里面才讲到 hasCode。
回复 使用道具 举报
这个问题,今天返回来写总结的时候
搞定了。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马