黑马程序员技术交流社区

标题: 关于《接收数组参数的成员方法的反射》产生的疑问 [打印本页]

作者: 红茶2331    时间: 2013-12-6 11:15
标题: 关于《接收数组参数的成员方法的反射》产生的疑问
本帖最后由 红茶2331 于 2013-12-7 10:38 编辑
  1. package cn.itcast.day1;
  2. import java.lang.reflect.Field;
  3. import java.lang.reflect.Method;
  4. public class ReflectTest {
  5.    
  6.     public static void main(String[] args)throws Exception{
  7.         
  8.         //对接收数组参数的成员方法进行反射
  9.         
  10.         String startClassName = args[0];//疑问三
  11.         
  12.         Method mainMethod = Class.forName(startClassName).getMethod("main", String[].class);//疑问2
  13.         
  14.         mainMethod.invoke(null, new Object[]{new String[]{"111","222","333"}});

  15.     }
  16. }

  17. class TestArguments{
  18.     public static void main(String[] args){
  19.         for(String arg:args){
  20.             System.out.println(arg);
  21.         }
  22.     }
  23. }
复制代码
看了张孝祥老师关于反射的这个视频,(基础加强的23个视频)产生了及格疑问。希望大神们帮忙解决一下
1:在这个java文件里面有两个类。也有两个main方法,一个java文件里面可以允许两个main方法吗?

2:上面标注的地方,此处获取的是main方法的字节码文件。他会获取哪一个main呢?按照视频的意思是下面那个类的main方法,那为什么呢?

3 : 上面标注的地方,此处的args[]是ReflectTest 类中main方法传入的参数应该是什么呢?是字符串吗?这个视频里的args[0]到底是什么?

这个视频看的我云里雾里的,感觉很难,一时理解不透,请大神们给解释一下。



作者: 王家胜    时间: 2013-12-6 11:24
一个java文件可以有多个mian方法,但一个类只能有一个启动类
如果你执行javac XX 就是执行 XX类中的main中的方法





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