有时候,我们传入到方法的参数的个数是不固定的,为了解决这个问题,我们一般采用下面的方法:
1. 重载,多重载几个方法,尽可能的满足参数的个数。显然这不是什么好办法。
2. 将参数作为一个数组传入。虽然这样我们只需一个方法即可,但是,为了传递这个数组,我们需要先声明一个数组,然后将参数一个一个加到数组中。
现在,我们可以使用可变长参数解决这个问题。
声明可变长参数方式如下:
public void mymethod(String arg1,Object… args)
也就是使用…将参数声明成可变长参数。
显然,可变长参数必须是最后一个参数。
例子:
java 代码
- public class Demo {
- public void spark(String key,Object... args){
- for(Object o : args){
- System.out.println(o);
- }
- }
- public static void main(String[] args){
- Demo d = new Demo();
- d.spark("key1", "value1111111");
- d.spark("key2", "value1111111","value222222");
- d.spark("key3", "value1111111","value222222","value3333333");
- }
- }
注意:在研究变长参数的时候,我有一个同事说Object后有几个"."就有几个参数,经过验证他是错的,可以有N多个.