可变参数

测试JDK可变参数方法
本文通过测试JDK中的Arrays.asList()方法,探讨了可变参数的使用方式及其注意事项。包括如何处理多个参数、数组及混合传参情况,并演示了不同类型数组的处理差异。

测试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]
        
    }

}

 

转载于:https://www.cnblogs.com/dengrenning/articles/8992412.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值