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

java动态参数列表即可变参数【可变的参数类型,也称为不定参数类型。英文缩写是varargus,还原一下就是variable argument type。】

2015-09-30 09:52 976 查看
文章来源:http://gzcj.iteye.com/blog/548430

常见情况下,我们通过限制输入参数的个数和类型、返回数据类型和抛出的异常来定义方法签名来与方法的调用者实现契约。使用动态参数特性,我们可以部分的克服该限制,使得签名变得动态化。你可能会说动态签名并不新鲜。如下两点你已经使用过多次来避免添加或删除方法签名中参数对客户端调用的影响。

使用数组或集合作为输入参数
使用对象将输入参数的属性进行封装

现在Java语言自身提供了动态参数特性以支持变量输入参数。当然它不是在任何场景下都非常的自然,但是可以被用到很多情况下。

Java编程人员常常需要为方法定义一个包含多个值的参数。这时可以采用List或数组的形式,如下例所示。

/**
* 可变参数列表
* @param type 0表示加,1表示减
* @param number
* @return
*/
public static int add(int type,Object ... number){
int sum=0;
if(type==0){
for(Object obj : number){
if(obj instanceof Integer){//整数类型
sum+=Integer.parseInt(obj.toString());
}else if(obj instanceof String){//字符串类型
System.out.println("字符串参数:"+obj);
}

}
}else if(type==1){
for(Object obj : number){
if(obj instanceof Integer){//整数类型
System.out.println(obj.toString());
sum=Integer.parseInt(obj.toString())-sum;
}else if(obj instanceof String){//字符串类型
System.out.println("字符串参数:"+obj);
}

}
}else{
throw new RuntimeException("请选择正确的计算类型,0表示加,1表示减");
}

return sum;
}


public static void main(String[] args) {
System.out.println(add(0,2,3));
System.out.println(add(1,2,3,4,"90"));
}
运行结果:4-(3-2)
2
3
4
字符串参数:90
3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: