码迷,mamicode.com
首页 > 编程语言 > 详细

Java可变参数

时间:2014-07-22 23:17:14      阅读:422      评论:0      收藏:0      [点我收藏+]

标签:style   http   java   color   for   re   

1. 可变参数等同于数组参数

public void add(int[] ints) {
}
public void add(int...intt) {
}
以上代码是无法通过编译的。
 

2. 向上兼容

可变参数是JDK5的一个新特性,在此之前是通过数组来满足需求的。所以可变参数可以接受一个相同类型的数组,但是数组类型的参数不能够接受可变参数。
@Test
public void test01() {
     int[] ints = {1, 3, 9, 20};
     add2(ints); //这句代码可以正确运行(可变参数接受数组)
     add2(1, 3, 9, 20); //这句代码可以正确运行(可变参数接受可变参数)
     add(ints); //这句代码可以正确运行(数组参数接受数组)
     add(1, 3, 9, 20); //这句代码无法通过编译(数组参数接受可变参数)
}

public int add(int[] ints) {
    int sum = 0;
    for (int anInt : ints) {
        sum += anInt;
    }
    return sum;
}

public int add2(int...intt) {
    int sum = 0;
    for (int anInt : intt) {
        sum += anInt;
    }
    return sum;
}
 

3. 可变参数必须是参数列表中的最后一个参数

这个很容易就可以想明白。如果第一个参数是可变参数的话,那么编译器就要疯了,因为它不知道到底哪个是第2个参数。
public void add(int...intt, String s) {
}//这个方法无法通过编译器的检查。




Java可变参数,码迷,mamicode.com

Java可变参数

标签:style   http   java   color   for   re   

原文地址:http://www.cnblogs.com/daojoo/p/3699693.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!