JDK5.0新特性的学习--可变长参数

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

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

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

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

public void mymethod(String arg1,Object… args)

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

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

java 代码
  1. publicclass Demo {
  2. publicvoid spark(String key,Object... args){
  3. for(Object o : args){
  4. System.out.println(o);
  5. }
  6. }
  7. publicstaticvoid main(String[] args){
  8. Demo d = new Demo();
  9. d.spark("key1", "value1111111");
  10. d.spark("key2", "value1111111","value222222");
  11. d.spark("key3", "value1111111","value222222","value3333333");
  12. }
  13. }


注意:在研究变长参数的时候,我有一个同事说Object后有几个"."就有几个参数,经过验证他是错的,可以有N多个.

[@more@]