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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘泰 中级黑马   /  2012-3-29 14:59  /  1368 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在含有可变参数的方法中用for(int a, int ... as){}
编译器可以把可变参数隐含的创建一个数组,所以对可变参数的操作和对数组的操作相同,如

public class Number
{

        public static void main(String[] args)
        {
        System.out.println(sum(2,5,5,6));
        }
  public static int sum(int x,int ...number){//int ... number 定义一个可变参数
                int sum = x;
                for(int i = 0 ;i < number.length ; i++){
                        sum += number[i];
                }
                return sum;
        }

}
能不能在传入的时候,直接传入一个数组呢?
方法里面的参数还是可变参数!

1 个回复

倒序浏览
本帖最后由 刘士 于 2012-3-29 15:39 编辑

  • public class ChangableArgTest {  
  •   
  •     public static void main(String[] args) {  
  •         String[] strings = new String[] { "hello", "world" };  
  •         new ChangableArgTest().print(strings);  
  •         new ChangableArgTest().print("hello", "world");  
  •     }  
  •       
  •     public void print(String ... strings ) {  
  •         for(String str : strings) {  
  •             System.out.println(str);  
  •         }  
  •     }  
  •   
  • }

    输出:
    hello
    world
    hello
    world


    证明:
    new ChangableArgTest().print(strings);
    new ChangableArgTest().print("hello", "world");是相同的。
    数组可以完全代替可变参数。
  • 回复 使用道具 举报
    您需要登录后才可以回帖 登录 | 加入黑马