码迷,mamicode.com
首页 > 编程语言 > 详细

java中可变参数

时间:2019-08-04 00:57:15      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:技术   数列   数字签名   虚拟机   长度   区别   code   mic   限制   

 

… :表示可变参数,在函数定义时使用

可变参数与对应数组的数字签名是完全一样的,但是使用有一定的区别

由于数字签名相同,所以冲突而报错:

 技术图片

 

使用上注意事项:

一、利用数组定义后,该方法就必须传入对应类型的数组

而使用可变参数后,可以不传入、或者传入多个参数,或者直接传入数组

 技术图片

函数调用:

 技术图片

 

二、当使用可变参数后,若传入的是单个或者多个参数时,编译器会对其进行封装,将这些参数封装为一个数组,所以对虚拟机来说不管是 无参数传入 或者传入多个参数 或者传入数组都是传入数组。

当无参数传入时,编译器依然会封装一个数组传入函数,数组的长度为0;

三、因为两者对应的数字签名一致,所以子类覆盖父类方法时就会出现函数形式不一样的情况:

 技术图片

 

四、一个方法中只能有一个可变参数,并且该可变参数必须放在参数列表的末尾,因为不这样限制可能会导致函数调用的不确定性

五、当调用函数时,出现既可以与固定参数列表的函数和可变参数函数匹配时,会选择调用固定参数列表的函数。

六、一个类中可以定义多个含有可变参数的方法,但是调用函数时可能会出现与多个可变参数函数匹配,这种情况直接调用失败

 

java中可变参数

标签:技术   数列   数字签名   虚拟机   长度   区别   code   mic   限制   

原文地址:https://www.cnblogs.com/zhaolei1996/p/11296695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!