參數列表(Variable-Length Argrment Lists, 簡稱 Varargs)
參數列表(Variable-Length Argrment Lists, 簡稱 Varargs), 也稱變數長度引數表如果我們無法確定呼叫方法會傳遞幾個參數,就無法明確定義這方法的參數個數,這時我們使用 Varargs 來解決參數個數不定的問題,而參數列表對於Java來說仍視為陣列.
範例:
- class Varargs01 // 定義一個類別取名為Varargs01{
- // 此時的String...names 就是參數列表,names會被視為陣列.
- void showOrder(String...names)
- {
- // 我用Order ser來顯示我點了什麼餐點
- System.out.print("Order set:"+" ");
- // 使用for-each迴圈自動走訪所有元素,這裡我們指定陣列names.
- for(String Order:names)
- System.out.print(Order+" ");
- System.out.println(); }
- public static void main(String args[]){
-
- // 建立一個物件給var
- Varargs01 var = new Varargs01();
-
- /*此3個字串會自動包裝成陣列後再傳遞給(String...names)的names變數形成
- String names[] ={"Hamburger","Sandwich","Tuna Cheese"};*/
- var.showOrder("Hamburger","Sandwich","Tuna Cheese");
- var.showOrder("Soda","Juice");//觀念同上}
- }
Order set: Hamburger Sandwich Tuna Cheese
Order set: Soda Juice
使用參數列表有3個限制請注意:
1. 在同一個類別內不可同時出現,因為相同類型的參數列表和陣列參數意義相同
2. 參數列表須放在所有參數的最後面如 : void showOrder(String str, String...names)
3. 1個方法只能使用1次參數列表,原因和第2點相同,編譯器會不知如何切割傳遞過來的值.
沒有留言:
張貼留言