5.5 java參數變量可變的方法 ...

文章目錄


  • 在Java SE 5.0之後,方法的參數數目可以不是固定的,是可變的數目。
    例如printf方法有多種使用方式:
    System.out.printf(%d", n);
    System.out.printf("%d %s", n, "widgets");
    在這裏插入圖片描述
  • 這裏的省略號 . . . 是 Java 代碼的一部分,它表明這個方法可以接收任意數量的對象(除 fmt 參數之外)。
    printf方法接收兩個參數,一個是格式字符串, 另一個是 Object ] 數組。其中保存着所有的參數(如果調用者提供的是整型數組或者其他基本類型的值, 自動裝箱功能 將把它們轉換成對象 )。
    現在將掃描 fmt字符串, 並將第 i 個格式說明符與 args[i] 的值匹配 起來。

編譯器需要對 printf的每次調用進行轉換, 以便將參數綁定到數組上,並在必要的時候 進行自動裝箱:
System.out.printf("%d %s", new Object[] { new Integer(n), "widgets" } );

用戶自己也可以定義可變參數的方法, 並將參數指定爲任意類型, 甚至是基本類型。下 面是一個簡單的示例:其功能爲計算若干個數值的最大值。

在這裏插入圖片描述
調用這個方法:

double m = max(3.1 , 40.4, -5);
編譯器將 new double[ ] {3.1, 40.4,-5} 傳遞給 max方法

可以將 main 方法聲明爲下列形式:
public static void main(String... args)

參考:《java核心技術卷Ⅰ》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章