您的位置:首页 > 编程语言 > Java开发

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

2016-03-26 22:00 465 查看
原创文章,转载请注明。

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

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"}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: