java 可变参数是什么?

 我来答
匿名用户
2018-04-13
引用chenzhaohui00的回答:
1.5版本的新特性,就是你想定义一个方法,但是不知道以后要用的时候想传几个参数进去,比如求和,你想定义一个传几个int数据都能给你算出和的方法,可以在方法的参数列表中这样写(参数类型... 数组名),然后在方法内部直接用操作数组的方式操作。在你调用的时候可以随便传几个参数进去,JVM都能将这些数据封装成一个数组,然后按照你方法内的操作进行操作。
举我上面说的求和的例:
public static int Sum(int... arr){
int sum=0;
for(int i=0;i<arr.length-1;i++){
sum+=arr[i];

}
return sum;

}
使用可变参数的一个注意:可变参数的定义,必须是放在参数列表的最后面,否则编译失败!
展开全部
不应该是arr.length-1,而是直接arr.length
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ca2edff
2014-09-14 · TA获得超过139个赞
知道答主
回答量:22
采纳率:0%
帮助的人:21.2万
展开全部
1.5版本的新特性,就是你想定义一个方法,但是不知道以后要用的时候想传几个参数进去,比如求和,你想定义一个传几个int数据都能给你算出和的方法,可以在方法的参数列表中这样写(参数类型... 数组名),然后在方法内部直接用操作数组的方式操作。在你调用的时候可以随便传几个参数进去,JVM都能将这些数据封装成一个数组,然后按照你方法内的操作进行操作。
举我上面说的求和的例:
public static int Sum(int... arr){
int sum=0;
for(int i=0;i<arr.length-1;i++){
sum+=arr[i];

}
return sum;

}
使用可变参数的一个注意:可变参数的定义,必须是放在参数列表的最后面,否则编译失败!
追问
可变参数的定义,必须是放在参数列表的最后面这句话是什么意思呢?是不是就是说           必须在这个函数所在类的参数列表的最后处定义   int... arr;  ?
追答
是的,原因是这样,如果你没有定义到最后,有可能出现这种现象:add(int... arr,int a,int b){……}
这个时候,如果在调用这个方法传值的时候,你传一个add(1,2,3,4,5,6),JVM不知道你最后两个是a和b,他会一起封装到arr数组中,后面的两个参数缺省,为了避免这种错误,编译器直接不让你这么定义。把格式封死,可变参数必须定义到最后面,即使你参数列表中的类型不一致,就是说不会发生上述的错误,也不行。
这都是小节,不必太在意。开发中遇到了就知道了。大不了就是面试题里可能会遇到。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式