`

转:JDK5.0 新特性--可变长参数

    博客分类:
  • Java
阅读更多

有时候,我们传入到方法的参数的个数是不固定的,为了解决这个问题,我们一般采用下面的方法:

1.  重载,多重载几个方法,尽可能的满足参数的个数。显然这不是什么好办法。

2.  将参数作为一个数组传入。虽然这样我们只需一个方法即可,但是,为了传递这个数组,我们需要先声明一个数组,然后将参数一个一个加到数组中。
现在,我们可以使用可变长参数解决这个问题。

声明可变长参数方式如下:

 public void mymethod(String arg1,Object… args)

也就是使用…将参数声明成可变长参数。

显然,可变长参数必须是最后一个参数。

例子:

java 代码
  1. public class Demo {   
  2.     
  3.  public void spark(String key,Object... args){   
  4.   for(Object o : args){   
  5.    System.out.println(o);   
  6.   }   
  7.  }   
  8.   
  9. public static void main(String[] args){     
  10.   
  11.   Demo d = new Demo();   
  12.   d.spark("key1""value1111111");   
  13.   d.spark("key2""value1111111","value222222");   
  14.   d.spark("key3""value1111111","value222222","value3333333");   
  15.   
  16. }   
  17.   
  18. }   
  19.   


分享到:
评论

相关推荐

    Java理论与实践:JDK 5.0中更灵活、更具可伸缩性的锁定机制

    本文介绍了多线程和并发性并不是什么新内容,但是Java语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个Thread类,可以用它来构建、启动和操纵...

    JDK5.0新特性 自动包装和解包等新功能

    自动包装和解包 更优化的循环语句 参数可变的方法 printf 枚举 静态引用 泛型

    JDK5.0的11个主要新特征.doc

    3 可变参数(Variable Arguments) 4 自动实现装箱和解箱操作(Boxing/Unboxing Conversions) 5 静态导入(Static Imports) 6 枚举类(Enumeration Classes) 7 元数据(Meta data) 8 Building Strings(StringBuilder类) 9 ...

    java中的泛型-详细

    本文将讲解JDK5.0支持的新功能-----Java的泛型.  1、Java泛型  其实Java的泛型就是创建一个用类型作为参数的类。就象我们写类的方法一样,方法是这样的method(String str1,String str2 ),方法中参数str1、str2的...

    高清Netty5.0架构剖析和源码解读

    当并发访问量增大、响应时间延迟变大后, 采用JAVABIO作为服务端的软件只有通过硬件不断的扩容来满足访问量的激 增,它大大增加了企业的成本,随着集群的膨胀,系统的可维护性也面临巨大 的挑战,解决这个问题已经...

    基于springboot的设备管理系统+源代码+文档说明

    设计之初,就非常注重安全性,为企业系统保驾护航,让一切都变得如此简单。 - 提供了代码生成器,只需编写30%左右代码,其余的代码交给系统自动生成,可快速完成开发任务 - 后台系统支持MySQL、Oracle、SQL Server、...

    Java中ReentrantLock的使用.docx

    重入锁ReentrantLock 相对来说是synchronized、Object.wait()和Object.notify()方法的替代品(或者说是增强版),在JDK5.0的早期版本,重入锁的性能远远好于synchronized,但从JDK6.0开始,JDK在synchronized上做了...

    Java JDK实例宝典

    5 可变长参数Varargs 16. 6 格式化输出 16. 7 使用ProcessBuilder执行本地命令 16. 8 泛型编程 16. 9 注释功能Annotation 16. 10 监控与管理虚拟机 16. 11 线程——Callable和Future ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    4.1.4. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators)(可选) 4.2. 实现继承(Inheritance) 4.3. 实现equals()和hashCode() 4.4. 动态模型(Dynamic models) 4.5. 元组片断映射(Tuplizers) 5. ...

    HibernateAPI中文版.chm

    4.1.4. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators)(可选) 4.2. 实现继承(Inheritance) 4.3. 实现equals()和hashCode() 4.4. 动态模型(Dynamic models) 4.5. 元组片断映射(Tuplizers) 5. ...

    hibernate3.2中文文档(chm格式)

    4.1.4. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators)(可选) 4.2. 实现继承(Inheritance) 4.3. 实现equals()和hashCode() 4.4. 动态模型(Dynamic models) 4.5. 元组片断映射(Tuplizers) 5. ...

    Hibernate教程

    5.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators) 5.1.2. 实现一个默认的(即无参数的)构造方法(constructor) 5.1.3. 提供一个标识属性(identifier property)(可选) 5.1.4. 使用非...

    AIC的Java课程1-6章

    课程选用最新的JDK5.0版本作为开发平台,教学的宗旨是:激发兴趣,理解知识,树立面向对象编程思维。  课程目标  认识Java平台,了解java application和applet的开发,激发学员对Java编程语言的兴趣。...

    Java2核心技术.part5

    12.5.1存储可变类型的对象 12.5.2理解对象序列化文件格式 12.5.3保存对象引用问题的解决 12.5.4理解对象引用的输出格式 12.5.5修改默认的序列化机制 12.5.6单元素与类型安全枚举的序列化 12.5.7...

    Java2核心技术.part3

    12.5.1存储可变类型的对象 12.5.2理解对象序列化文件格式 12.5.3保存对象引用问题的解决 12.5.4理解对象引用的输出格式 12.5.5修改默认的序列化机制 12.5.6单元素与类型安全枚举的序列化 12.5.7...

    Java2核心技术.part1

    12.5.1存储可变类型的对象 12.5.2理解对象序列化文件格式 12.5.3保存对象引用问题的解决 12.5.4理解对象引用的输出格式 12.5.5修改默认的序列化机制 12.5.6单元素与类型安全枚举的序列化 12.5.7版本 ...

    Java2核心技术.part6

    12.5.1存储可变类型的对象 12.5.2理解对象序列化文件格式 12.5.3保存对象引用问题的解决 12.5.4理解对象引用的输出格式 12.5.5修改默认的序列化机制 12.5.6单元素与类型安全枚举的序列化 12.5.7...

    Java2核心技术.part4

    12.5.1存储可变类型的对象 12.5.2理解对象序列化文件格式 12.5.3保存对象引用问题的解决 12.5.4理解对象引用的输出格式 12.5.5修改默认的序列化机制 12.5.6单元素与类型安全枚举的序列化 12.5.7...

Global site tag (gtag.js) - Google Analytics