有時候,我們傳入到方法的參數的個數是不固定的,為了解決這個問題,我們一般采用下面的方法:
1. 重載,多重載幾個方法,盡可能的滿足參數的個數。顯然這不是什么好辦法。
2. 將參數作為一個數組傳入。雖然這樣我們只需一個方法即可,但是,為了傳遞這個數組,我們需要先聲明一個數組,然后將參數一個一個加到數組中。 現在,我們可以使用可變長參數解決這個問題。
聲明可變長參數方式如下:
public void mymethod(String arg1,Object… args) 也就是使用…將參數聲明成可變長參數。
顯然,可變長參數必須是最后一個參數。 例子: java 代碼 - publicclass Demo {
-
- publicvoid spark(String key,Object... args){
- for(Object o : args){
- System.out.println(o);
- }
- }
-
- publicstaticvoid main(String[] args){
-
- Demo d = new Demo();
- d.spark("key1", "value1111111");
- d.spark("key2", "value1111111","value222222");
- d.spark("key3", "value1111111","value222222","value3333333");
-
- }
-
- }
-
注意:在研究變長參數的時候,我有一個同事說Object后有幾個"."就有幾個參數,經過驗證他是錯的,可以有N多個.
|