Java 中的可變參數(Varargs)

轉載請註明來自:黃朝輝的博客

1.前言

最近在Android開發時要使用AsyncTask類,其中要重寫這麼一個方法:

protected String doInBackground(String... params) {
}

這裏的params便是可變參數(有的地方稱爲變長參數)。

2.詳解

String[]和String…的本質相同(都是字符串數組)。
以下爲使用String…的例子:

public void myMethod( String... foo ) {
    System.out.println( foo[0] );
}

myMethod( "a", "b", "c" );

// 或者
myMethod( new String[]{ "a", "b", "c" } );

// 或者不傳遞參數
myMethod( );

以下爲使用String[]的例子:

public void myMethod( String[] foo ) {
    System.out.println( foo[0] );
}

// 這裏會編譯錯誤!!!
myMethod( "a", "b", "c" );

// 只能通過這種方式
myMethod( new String[]{ "a", "b", "c" } );

因此,Java中的main函數也可以寫成這樣。

    public static void main(String... args) {

    }

注意:一個方法中只能有一個可變參數;如果一個方法中有可變參數,那麼它只能是在最後一個出現!

3.參考文獻

  1. http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html
  2. http://stackoverflow.com/questions/11973505/what-is-the-difference-between-string-and-string-in-java
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章