黑马程序员技术交流社区

标题: 一个反射的问题 [打印本页]

作者: 逍遥呆    时间: 2014-9-21 09:56
标题: 一个反射的问题
为什么我这个javaDemo里的Demo1是不能解决的?什么意思?

  1. import java.lang.reflect.*;
  2. import java.util.*;


  3. public class Javademo {

  4.         public static void main(String[] args)throws Exception
  5.         {
  6.                 //普通方式
  7.                 Dome1.main(new String[]{"123","456","789"});
  8.                 System.out.println("....................");
  9.                 //反射方式
  10.                 String className = args[0];
  11.                 Class clazz = Class.forName(className);
  12.                 Method methodMain = clazz.getMethod("main", String[].class);
  13.                 //转为Object,不拆包
  14.                 methodMain.invoke(null, (Object)new String[]{"123","456","789"});
  15.                 //将数组打包
  16.                 methodMain.invoke(null, new Object[]{new String[]{"123","456","789"}});
  17.         }
  18.        
  19. }
  20. class Demo1
  21. {
  22.        
  23.     public static void main(String[] args)                 // throws IOException
  24.     {
  25.             for(String arg:args)
  26.             {
  27.                     System.out.println(arg);
  28.             }
  29.     }

  30. }
复制代码

作者: hike_2008    时间: 2014-9-21 10:39
本帖最后由 hike_2008 于 2014-9-21 11:11 编辑

看拼写...这打字是不是太顺手了 .dome
还有, 你获取类名的时候, 是不是获取错了, 是不是应该获取当前类的.class , 然后再.getName()?

作者: 逍遥呆    时间: 2014-9-21 11:11
hike_2008 发表于 2014-9-21 10:39
看拼写...这打字是不是太顺手了 .dome

发现了,对不起,这问题多余了
作者: 定格在永远    时间: 2014-9-21 14:46
import java.lang.reflect.*; import java.util.*;   public class Kkk{          public static void main(String[] args)throws Exception         {                 //普通方式                    String[] n = new String[]{"123","456","789"};                Demo1 D= new Demo1(n);                 System.out.println("....................");                 //反射方式                 String className = args[0];                 Class clazz = Class.forName(className);                 Method methodMain = clazz.getMethod("Demo1", String[].class);                 //转为Object,不拆包                 methodMain.invoke(null, (Object)new String[]{"123","456","789"});                 //将数组打包                 methodMain.invoke(null, new Object[]{new String[]{"123","456","789"}});         }          } class Demo1 {              public  Demo1(String[] args)throws Exception                  {             for(String arg:args)             {                     System.out.println(arg);             }     }  }
作者: 定格在永远    时间: 2014-9-21 14:47
import java.lang.reflect.*;
import java.util.*;


public class Kkk{

        public static void main(String[] args)throws Exception
        {
                //普通方式
                   String[] n = new String[]{"123","456","789"};
               Demo1 D= new Demo1(n);
                System.out.println("....................");
                //反射方式
                String className = args[0];
                Class clazz = Class.forName(className);
                Method methodMain = clazz.getMethod("Demo1", String[].class);
                //转为Object,不拆包
                methodMain.invoke(null, (Object)new String[]{"123","456","789"});
                //将数组打包
                methodMain.invoke(null, new Object[]{new String[]{"123","456","789"}});
        }
        
}
class Demo1
{
        
    public  Demo1(String[] args)throws Exception            
    {
            for(String arg:args)
            {
                    System.out.println(arg);
            }
    }

}
不知道符不符合




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2