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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

main方法如下
我想在代码执行时 给args[]传递值
求大神指点


public static void main(String[] arges){
     int iPara1,iPara2,iEnd;
     if(arges.length!=3)
     {
       System.out.println("USE :java flowDome parameter1 parameter2 circle");
       System.out.println("parameter1 : 比较条件1,数字类型");
       System.out.println("parameter2 : 比较条件2,数字类型");
       System.out.println("circle :循环次数");
       System.out.println("ego:java flowDome 1 2 5");
       return;
     }else
     {
       iPara1 = Integer.parseInt(arges[0]);
       iPara2 = Integer.parseInt(arges[1]);
       iEnd = Integer.parseInt(arges[2]);
     }

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

3 个回复

正序浏览
楼主你好,右键run as --> run configuration -->Arguments
补充哈子,在Program argumentsn那一栏写你要传入的那个类中main方法:例如:cn.http.printArgument.TestArgument(包名+类名)
代码理解我发过来:
//第一种方法:调用另一个TestArgument类的main方法
TestArgument.main(new String[]{"111","222","333"});
//第二种方法:用Method方法的反射
String startClassName = args[0];
//我们要调用的是main,它的参数是String[],也就是说它只接受字符串类型的数组;
Method mainMethod = Class.forName(startClassName).getMethod("main", String[].class);
//new String[]{"111","222","333"}首先要进行拆箱(为什么要拆箱,跟jdk1.4版本有关),也就是3个参数,但是我要一个数组,所以:
//(方法1)我要告诉java编译器,我传进来的是就是数组,不需要拆箱了
mainMethod.invoke(null, (Object)new String[]{"111","222","333"});
//(方法1)我把它包两层,java编译器拆箱后,剩下的就是一个数组
mainMethod.invoke(null, new Object[]{new String[]{"111","222","333"}});

还有不会的联系我,我研究了3天,算是还行吧
回复 使用道具 举报
貌似问题解决了
要是解决及时更改问题状态,重新编辑为已解决
否则继续追问
回复 使用道具 举报
楼主你好,右键run as --> run configuration -->arguments

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

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