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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵亚威 中级黑马   /  2013-4-4 10:12  /  1571 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵亚威 于 2013-4-4 18:49 编辑

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                VariableParameter(2,4,"ab","ag");
        }
        public static void VariableParameter(int a,String... arg){
                for(int x=0;x<arg.length;x++){
                System.out.println(a+arg[x]);
                }
        }
为什么会出错 无法进行编译

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

6 个回复

倒序浏览
语法逻辑里有错.


可变参数就是当你调用这个方法的时候,可以传给它任意个参数
一半可变参数定义方法都是
prt(int...){
   // 这个方法是可变参数的
}

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
有public static void VariableParameter(int a,String... arg){ }这样的?
如果有,那你在【VariableParameter(2,4,"ab","ag");】传参数的时候,也不匹配啊!
【public static void VariableParameter(int a,String... arg)】 应该是说:传进来的第一个参数是int型的,后面的应该全是String型的吧!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
1.并没有定义类。
2.没有定义数组,而for循环里却是用数组。
3.主函数调用VariableParameter函数的参数类型和数量不一致。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
函数public static void VariableParameter(int a,String..arg){}这个
你传入  VariableParameter(2,4,"ab","ag");
函数需要的是:int,String[]  
你传入的是:int,int,String,String
参数类型int不符合,所以出错了
所以应该要 VariableParameter(2,"4","ab","ag"),后面都为String类型就OK了

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
public static void VariableParameter(int a,String... arg)  这里是一个int 型的数 和可变的字符串。但是你在这VariableParameter(2,4,"ab","ag");传的时候却传了俩个int型的数,int型的参数个数不匹配 所以会报错,你删一个int型的就ok了。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
若还有问题,继续追问; 没有的话,尽量及时将帖子分类改成【已解决】~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马