可变参数
测试JDK中具有可变参数的类Arrays.asList()方法。分别传多个参数、传数组,传数组又传参的情况。
注意:传入基本数据类型数组的问题。
从JDK 5开始, Java 允许为方法定义长度可变的参数。语法:
public void foo(int … args){
}
注意事项:
调用可变参数的方法时, 编译器将自动创建一个数组保存传递给方法的可变参数,因此,程序员可以在方法体中以数组的形式访问可变参数
可变参数只能处于参数列表的最后, 所以一个方法最多只能有一个长度可变的参数
package testFor; import java.util.Arrays; import java.util.List; import org.junit.Test; public class testSum { @Test public void testSum(){ sum(1,2,3,4); int arr[]={5,6,7}; sum(arr); } public void sum(int ...nums){ //可变参数当成数组 int sum=0; for(int i:nums){ sum+=i; } System.out.println(sum); } //可变参数注意的问题 // public void aa(int ...nums,int s){}//不可以 // public void bb(int s ,int ...nums){}//可以 @Test public void bb(){ //public static <T> List<T>asList(T... a) List list=Arrays.asList("1","2","3"); System.out.println(list);//[1, 2, 3] String arr[]={"1","2","3","4"}; list=Arrays.asList(arr); System.out.println(list);//[1, 2, 3, 4] int nums[]={1,2,3,4,5}; list=Arrays.asList(nums);//存储只是一个对象,因为asList的参数要求是对象 System.out.println(list);//[[I@120d62b] Integer nums2[]={1,2,3,4,5};//Integer,基本类型自动装箱 list=Arrays.asList(nums2); System.out.println(list);//[1, 2, 3, 4, 5] } }