2014-07-23 162 views
0

爲什麼下面的java代碼編譯會導致錯誤?如果有問題,我正在使用java 8。爲什麼這個java類不編譯

public class SimpleTest { 

     private static boolean isPresent(int []... arrays, int number){ 

      boolean isPresent = true; 

      for(int i=0;i<arrays.length;i++){ 
       //isPresent = doBinarySearch(arrays[i], number); 
       if(!isPresent){ 
        break; 
       } 
      } 

      return isPresent; 
     }  
} 

這裏是我得到的錯誤:

SimpleTest.java:3: error: ')' expected 
    private static boolean isPresent(int []... arrays, String number){ 
               ^
SimpleTest.java:3: error: ';' expected 
    private static boolean isPresent(int []... arrays, String number){ 
                   ^
2 errors 
+16

varag參數必須是最後一個參數 –

回答

4

可變參數只能被宣佈爲最後一個參數。

您可以使用名爲varargs的構造將任意數量的 值傳遞給方法。當你不知道有多少個特定類型的參數將被傳遞給該方法時,可以使用可變參數。這是一個 手動創建陣列的快捷方式。

要使用可變參數,你用 省略號(三個點,...),然後是一個空格,參數名稱遵循最後一個參數的類型。然後可以用該參數的任何數量調用 方法,包括 無。

Source

-3

這應該工作:

private static boolean isPresent(int []arrays, int number) { 
... 
} 
+0

這會給出一個編譯錯誤,像他想不使用varags –