JAVA方法声明中参数的那三个小数点

原创文章,转载请注明。

        我们看如下一个方法的声明。

    public static void tst( Object... initargs){
    	System.out.println(initargs.length);
    	System.out.println(initargs[0]);

    }

       参数中那三个小数点代表什么意思呢?这代表方法自动重载。也就是我们如下的代码都是合法的。

    tst();//0,报异常
    tst(1);//1,1
    tst(1,2);//2,1
    tst(1,2,3);//3,1
       其实现原理为自动地将initargs转换为一个Object[ ]数组。

       这就问题来了,如果我们的参数本身就是一个数组,怎么办?如下代码:

String[] strArr = new String[2];
strArr[0]="a";
strArr[1]="b";
tst(strArr);//2,a
        可见,如果传入的是数组,则Java默认就不再去转换Object数组了,也就会造成参数错误。 

       解决办法就是,再初始化一个Object[]数组,传入函数,如下代码所示:

String[] strArr = new String[2];
strArr[0]="a";
strArr[1]="b";
Object[] args = new Object[1];
args[0]=strArr;
tst(args);//1,{“a”,"b"}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值