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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 悟佛修道 高级黑马   /  2013-5-27 21:35  /  1309 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 悟佛修道 于 2013-5-27 23:02 编辑
  1. show(2,3,4,5,6,"haha");
  2. //show(2,3,4,5,6,4,2,35,9,"heh");
  3. //show();

  4. }
  5. public static void show(int... arr,String str)为什么这样写有错?



  6. show("haha",2,3,4,5,6);
  7. //show(2,3,4,5,6,4,2,35,9,"heh");
  8. //show();

  9. }
  10. public static void show(String str,int... arr)这样写就正确
复制代码
这个例子没弄明白,求分别解释下两种写法 是怎么传入参数里,为什么string str写后面对应传入的haha(也是在参数后面 )就会出错呢?为什么全部搬到前面去对应就不会出错呢?求解,谢谢!!

评分

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

查看全部评分

5 个回复

倒序浏览
可变参数只能出现在参数列表的最后,这个是格式,记住即可。
回复 使用道具 举报
格式,规则就是这样的,要在java中玩,就必须遵从它的游戏规则

捕获.PNG (23.7 KB, 下载次数: 0)

捕获.PNG

评分

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

查看全部评分

回复 使用道具 举报
可变参数:这个是java1.5的新特性
适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。使用可变参数时候,因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。使用时候需要注意的几点:只能是在参数列表的最后;使用...来定义参数。
class Demo{
        public void printString(StringBuffer sb ,int ... args){                //可变参数
                for(int arg : args){                //把传入的int[]加到字符串中
                        sb.append(arg);               
                }
                System.out.println(sb.toString());
        }

        public static void main(String[] args) {
                Demo d = new Demo();
                StringBuffer sb = new StringBuffer();
                d.printString(sb,1,1,1);
        }
}

评分

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

查看全部评分

回复 使用道具 举报
Java中的规则记住即可,可变参数只能出现在参数列表的最后

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 内容尽量详细

查看全部评分

回复 使用道具 举报
陈潜 发表于 2013-5-27 22:14
可变参数:这个是java1.5的新特性
适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。使 ...

似乎明白这个解释了,多谢,也谢谢各位。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马