黑马程序员技术交流社区

标题: 可变参数问题 [打印本页]

作者: 赵亚威    时间: 2013-4-4 10:12
标题: 可变参数问题
本帖最后由 赵亚威 于 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]);
                }
        }
为什么会出错 无法进行编译
作者: lucy198921    时间: 2013-4-4 10:27
语法逻辑里有错.


可变参数就是当你调用这个方法的时候,可以传给它任意个参数
一半可变参数定义方法都是
prt(int...){
   // 这个方法是可变参数的
}
作者: 张昶    时间: 2013-4-4 10:34
有public static void VariableParameter(int a,String... arg){ }这样的?
如果有,那你在【VariableParameter(2,4,"ab","ag");】传参数的时候,也不匹配啊!
【public static void VariableParameter(int a,String... arg)】 应该是说:传进来的第一个参数是int型的,后面的应该全是String型的吧!
作者: 聖手`书生    时间: 2013-4-4 10:41
1.并没有定义类。
2.没有定义数组,而for循环里却是用数组。
3.主函数调用VariableParameter函数的参数类型和数量不一致。
作者: 李芳池    时间: 2013-4-4 10:48
函数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了
作者: 杜加璇    时间: 2013-4-4 11:46
public static void VariableParameter(int a,String... arg)  这里是一个int 型的数 和可变的字符串。但是你在这VariableParameter(2,4,"ab","ag");传的时候却传了俩个int型的数,int型的参数个数不匹配 所以会报错,你删一个int型的就ok了。
作者: 打工人    时间: 2013-4-4 16:31
若还有问题,继续追问; 没有的话,尽量及时将帖子分类改成【已解决】~




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