首页 > 其他 > 详细

JDK1.5后的新特性之一:可变参数

时间:2016-03-13 16:04:02      阅读:199      评论:0      收藏:0      [点我收藏+]

  Java中的可变参数

  Java1.5后出现了一个新特性,即可变参数,格式为:类型 …参数

例如:技术分享

  总的来说,可变参数可以当成是数组来用:

 1 public void testSum() {
 2         System.out.println(sum(1,2,3,4,5));
 3     }
 4     
 5 public int sum(int ...nums) {
 6         int sum = 0;
 7         for(int i:nums) {
 8             sum +=i;
 9         }
10         return sum;    
11     }

  如果方法参数中不止有可变参数,还有别的类型的参数,那么可变参数应该放到方法列表中的最后才不会报错:

 1 public void testSum() {
 2         System.out.println(sumPlusX(100,1,2,3,4,5));
 3     }
 4     
 5 public int sumPlusX(int x,int ...nums) {
 6         int sum = 0;
 7         for(int i:nums) {
 8             sum +=i;
 9         }
10         return sum+x;
11         
12     }

  可以直接用数组来满足参数是可变参数的方法:

 1 public void testSum() {
 2         int[] nums = {1,2,3,4,5};
 3         System.out.println(sum(nums));
 4     }
 5     
 6 public int sum(int ...nums) {
 7         int sum = 0;
 8         for(int i:nums) {
 9             sum +=i;
10         }
11         return sum;
12         
13     }

  最后我们再来看一看比较典型的采用可变参数的方法,在数组工具类Arrays中的asList方法:

  技术分享

  从方法参数列表可以看到这也是一个可变参数,接收的是对象,记住是对象!等下我们就可以看到为什么这样强调了。

我们先来一个简单的例子:

1 public void testAsList() {
2         List list = Arrays.asList("1","2","3");
3         System.out.println(list);
4     }

输出:

  技术分享

再来一个简单的例子:

1 public void testAsList() {
2         String[] str = {"1","2","3","4"};
3         List list = Arrays.asList(str);
4         System.out.println(list);
5     }

输出:

  技术分享

最后一个例子:

1 public void testAsList() {
2         int[] nums = {1,2,3,4,5};
3         List list = Arrays.asList(nums);
4         System.out.println(list);
5     }

输出:

  技术分享

  前面说过,可以将可变参数当成数组来处理,也可以用数组来满足参数列表为可变参数,对于可变参数是类型来说,对象数组依然可以满足可变参数,但是基本类型数组,因为数组中的元素并不是类型对象,所以只能将整个数组作为一个对象,因此就出现上面第三种情况。

  当然如果我们将上面的例子将基本类型改变为其对象包装类,那么就又可以了:

1 public void testAsList() {
2         Integer[] nums = {1,2,3,4,5};
3         List list = Arrays.asList(nums);
4         System.out.println(list);
5     }

输出:

  技术分享

 

 

 

  

JDK1.5后的新特性之一:可变参数

原文:http://www.cnblogs.com/fjdingsd/p/5272079.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!