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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 红茶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]到底是什么?

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


评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1

查看全部评分

1 个回复

倒序浏览
一个java文件可以有多个mian方法,但一个类只能有一个启动类
如果你执行javac XX 就是执行 XX类中的main中的方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马