java 不确定参数个数_java如何实现不固定个数传参

CreateTime--2017年9月15日14:42:40

Author:Marydon

java如何实现不固定个数传参(定义实参个数可变的方法)

参考链接:原文链接

传统方法:为这个方法定义一个数组型的参数,将不确定的参数放到数组中,把这个数组作为一个实参传递过去

举例:

//定义带有数组型参数的方法

int getSum(int[] params) {

}//调用

getSum(1,2,3);

方法:借助Varargs机制

J2SE 1.5提供了“Varargs”机制。借助这一机制,可以定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参;

Varargs:"variable number of arguments"

举例:

/*** 求和

* @description

* 定义实参个数可变

*@paramparams

* >=0个int类型实参

*@return

*/

static int getSum(int... params) {//和

int sum = 0;for (inti : params) {

sum+=i;

}returnsum;

}//调用

int sum = Test.getSum(1,2,3);

System.out.println(sum);//6

注意事项:

1.java不支持泛型数组,当数组元素类型不确定时,可以使用Object来定义该数组的数据类型;

2.不能确定的参数个数的方法在定义时,该形参必须放在方法的最后一个参数;

否则,编译报错:The variable argument type int of the method getSum must be the last parameter

3.不能再为这个类定义一个和转化后的方法签名一致的方法;

否则,编译报错:Duplicate method getSum(int[]) in type Test

原因:在class文件编译时实际上将匹配不确定个实参的形参,转化为数组形参,即

static int getSum(int[] params) {//和

int sum = 0;for (inti : params) {

sum+=i;

}returnsum;

}

4.传0个实参时,传递过去的是一个空数组,而不是null;

5. 传统方式与这种方式的区别在于:这种方式传参时不必将参数先封装到一个数组里面。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值