為什麼要寫可變參數呢? 今天為什麼我會寫這篇博客呢,一個可變參數而已,也沒什麼技術含量,原因是因為,今天朋友看我代碼的時候問我,這個是什麼 當時我很驚訝,問他,這個你不知道嗎,很早就出了,然後和他解釋了一番,隨後想了一下,可能是教他的老師,不在乎,或是趕課程,把這個可變參數跳過了。好了,閑話少說,步 ...
為什麼要寫可變參數呢?
今天為什麼我會寫這篇博客呢,一個可變參數而已,也沒什麼技術含量,原因是因為,今天朋友看我代碼的時候問我,這個是什麼
1 public static void k(String... str){} 2 //代碼我就不放上來了,比較長,就簡短的寫個例子
當時我很驚訝,問他,這個你不知道嗎,很早就出了,然後和他解釋了一番,隨後想了一下,可能是教他的老師,不在乎,或是趕課程,把這個可變參數跳過了。
好了,閑話少說,步如正題:
什麼是可變參數呢?
可變參數是在jdk1.5的時候,推出的新特性。
顧名思義,就是可以變換的參數列表,這個參數可多可少,比如說,你又一個方法,這個方法一般寫的話,參數是固定的,倆個參數就是倆個參數,一個參數就是參數,而這個可變參數,就是,在你使用它的時候,他可以是倆個也可以是三個也可以是一個。
可變參數底層實現是數組,可以做一個簡單的測試如下:
大家可以看到,在編譯階段它就報錯了,之所以會報錯,是因為,可變參數的底層實現就是數組,上面我們是用String,所以編譯的時候,可變參數會轉成String[](方法的可變參數在編譯時會被看成具有相同類型的一維數組),這時它們的參數就一樣了,衝突了,所以會報錯。
### 可變參數怎麼用呢?
可變參數的使用很簡單,只要在方法參數的類型後面加三個點就可以了
1 public static void t(String... a) {}
同時也要註意,可變參數只能寫在參數列表的最後一個,否則在編譯時就會報錯
還要註意,一個方法的參數列表裡只能有一個可變參數
其實這個也可以說是和可變參數只能放在最後一個相互印證了
寫一個簡單的小例子供參考
1 public static void main(String[] args) { 2 t(1,2.0,"張三","李四","王五"); 3 } 4 public static void t(int i,double d,String... str) { 5 System.out.println(str.length); 6 }
輸出結果: ======== 1 3
可變參數在什麼時候用呢?
可變參數在你確定不了方法參數的時候,或則你方法的參數可能會存在增加/減少的時候用。