java动态参数列表即可变参数【可变的参数类型,也称为不定参数类型。英文缩写是varargus,还原一下就是variable argument type。】
2015-09-30 09:52
976 查看
文章来源:http://gzcj.iteye.com/blog/548430
常见情况下,我们通过限制输入参数的个数和类型、返回数据类型和抛出的异常来定义方法签名来与方法的调用者实现契约。使用动态参数特性,我们可以部分的克服该限制,使得签名变得动态化。你可能会说动态签名并不新鲜。如下两点你已经使用过多次来避免添加或删除方法签名中参数对客户端调用的影响。
使用数组或集合作为输入参数
使用对象将输入参数的属性进行封装
现在Java语言自身提供了动态参数特性以支持变量输入参数。当然它不是在任何场景下都非常的自然,但是可以被用到很多情况下。
Java编程人员常常需要为方法定义一个包含多个值的参数。这时可以采用List或数组的形式,如下例所示。
常见情况下,我们通过限制输入参数的个数和类型、返回数据类型和抛出的异常来定义方法签名来与方法的调用者实现契约。使用动态参数特性,我们可以部分的克服该限制,使得签名变得动态化。你可能会说动态签名并不新鲜。如下两点你已经使用过多次来避免添加或删除方法签名中参数对客户端调用的影响。
使用数组或集合作为输入参数
使用对象将输入参数的属性进行封装
现在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
相关文章推荐
- Java基础知识之泛型全接触
- HBase java关键API
- StrutsPrepareFilter和StrutsExecuteFilter拦截
- spring中Bean的作用域
- 【SSH快速进阶】——Hibernate环境搭建
- java异常整理
- 利用Spring.NET实现WCF的AOP编程
- 打造Eclipse的Sublime Text风格全黑酷炫模式,不伤眼!!!
- eclipse在Ubuntu 12.04下的安装
- Java反射机制
- test9.4
- Java 多线程断点下载文件
- Struts2-Results机制
- java提高篇(四)-----理解java的三大特性之多态
- (转)java提高篇(四)-----理解java的三大特性之多态
- JAVA获取相对时间,几分前、几天前、几月前
- JAVA获取相对时间,几分前、几天前、几月前
- 启动Eclipse 弹出Failed to load the JNI shared library jvm.dll解决方案
- 配置JAVA的环境变量
- jdk 1.5升级提供只唤醒对方对象方法