1. 程式人生 > >Java可變引數應用實操

Java可變引數應用實操

有時候會對某個函式的入參無法確定輸入個數,這個時候就需要使用可變引數,先來看看是如何使用的。

public class Test {
    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            uncertainParam("arg1","arg2","arg3");
        } catch (Exception e) {
            System.out.println(e.toString());
        }
        
    }

    public static void uncertainParam(String ...param){
    	for(int i=0; i<param.length; i++) {
    	    System.out.println(param[i]);
    	}
    }
}

執行完後輸出:

arg1
arg2
arg3

使用了可變引數後函式是否還能有其他的引數呢?答案是可以的,例如在可變引數前面加一個整型引數。

 /**
     * @param args
     */
    public static void main(String[] args) {
        try {
         uncertainParam(100, "arg1","arg2","arg3");
        } catch (Exception e) {
            System.out.println(e.toString());
        }
        
    }
    
    public static void uncertainParam(int size, String ...param){
     for(int i=0; i<param.length; i++) {
      System.out.println(param[i]);
     }
    
     System.out.println("the size is:"+size);
    }

執行完的結果:

arg1
arg2
arg3
the size is:100

如果在可變引數的後面增加引數會怎麼樣呢?Java編譯器會提示你可變引數必須位於最後一個引數。

通過前面的例子我們知道了可變引數是怎麼使用的,已經在使用的過程中要注意的一些約束。那麼可變引數到底是怎麼實現的呢?開啟編譯後的java檔案對應的class檔案會發現,可變引數實際上是變成了一個數組。

  public static void uncertainParam(String[] param) {
    for (int i = 0; i < param.length; i++)
      System.out.println(param[i]);
  }