java中可变参数

来源:互联网 发布:彭博数据终端 编辑:程序博客网 时间:2024/06/05 20:38

可变参数,在我看来,它就是对参数的个数无限制,视传入参数的个数而定;

让我们一起先看看程序吧

import java.util.Arrays;import java.util.List;import org.junit.Test;public class Demo4 {@Testpublic void testSum() {// TODO Auto-generated method stub//sum(1,2,3,4,5,6);int arr[]={1,2,3,4,5,6};sum(arr);}public void sum(int ...nums){int sum=0;for(int i:nums){sum+=i;}System.out.println(sum);}@Testpublic void testaa(){aa(1,2,3,4,5);}public void aa(int x,int ...nums){}@Testpublic void bb(){List list=Arrays.asList("1","2","3");//Array.asList里装的是对象数组System.out.println(list);String arr[]={"1","2","3","4"};list=Arrays.asList(arr);System.out.println(list);Integer num[]={1,2,3,5};list=Arrays.asList(num);System.out.println(list);}}
结果是:<pre name="code" class="java">21[1, 2, 3][1, 2, 3, 4][1, 2, 3, 5]

<span style="white-space: pre; ">int</span> ...nums可以说是可变参数的标志(可以传入n多个参数)sum方法的形参是int ...nums,在它的测试方法里sum(1,2,3,4,5,6)和sum(arr)都可以,说明实参可以是几个数也可以是一个同类型的数组。
<span style="white-space:pre"></span>若有单个形参与可变参数同时作为变量,则将单个形参放在前面,只有这样,才能给单个形参赋值,很好理解int ..nums本就是无限个参数,所以如将单个形参放在后面,他就无法接受实参。
<span style="white-space:pre"></span>Array.asList顾名思义,把数组"变成"list中添加的是对象数组。

0 0