自Java 5後,Java允許定義形參個數可變的方法,從而允許執行過程中,為方法指定不確定個數的形參。
其定義方法的格式如下:
void function_name ( type ... variables){ //對variables陣列進行操作 }
在上面格式中,系統將輸入的引數全部儲存到variables陣列中。也就是說,下面的定義方式,其實是相同的:
void function_name ( type ... variables); void function_name ( type[] variables);
在這裡,對形參個數可變函式,有三個地方需要注意一下:
(1)個數可變的形參只能處於形參列表的最後,一個方法中最多隻能包含一個長度可變的形參;
(2)這個個數可變的形參,既可以傳入多個引數,也可以傳入一個陣列(見下面例子);
public static void main(String[] args){ String[] strs = new String[]{"a","b","c"}; //傳入陣列 test(strs); //傳入多個引數 test("d","e","f"); } public static void test(String ... strs){ for (String str : strs) { System.out.println(string); } }
(3)在過載中,假如出現一個普通的單個形參的函式與可變形參個數的函式過載,而呼叫傳入的引數只有一個,那麼系統將會優先呼叫單個形參的函式;如果想要呼叫可變形參個數的函式,則可以將引數轉換為陣列傳入,詳細見下面例子:
public static void main(String[] args){ //將會呼叫"單個引數的方法"; test("a"); //將傳入的引數轉換為陣列,將會呼叫"引數個數可變的方法"; test(new String[]{"a"}); } public static void test(String books){ System.out.println("單個引數的方法。"); } public static void test(String ... books){ System.out.println("形參個數可變的方法。"); }