2014-07-23 6 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 для передачи произвольному номеру значений в метод. Вы используете varargs, когда вы не знаете, сколько из аргументов определенного типа будет передано методу. Это быстрый способ создания массива .

Для использования с переменным числом аргументов, вы будете следовать тип последнего параметра с помощью многоточие (три точки, ...), то пробел и имя параметра. Затем можно вызвать метод с любым числом этого параметра, включая none.

(Source)

-3

Это должно работать:

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

Это даст ошибку компиляции, и не использует varags, как он хочет –

Смежные вопросы