轉載請註明來自:黃朝輝的博客
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) {
}
注意:一個方法中只能有一個可變參數;如果一個方法中有可變參數,那麼它只能是在最後一個出現!