2014-07-23 5 views
0

Pourquoi la compilation du code java ci-dessous entraîne-t-elle une erreur? J'utilise java 8, si ça compte.Pourquoi cette classe Java ne compile pas

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; 
     }  
} 

Et voici l'erreur que je reçois:

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

paramètres Varag doit être le dernier paramètre –

Répondre

4

VarArgs ne peut être déclarée comme le dernier paramètre.

Vous pouvez utiliser une construction appelée varargs pour transmettre un nombre arbitraire de valeurs à une méthode. Vous utilisez varargs lorsque vous ne savez pas combien d'arguments particuliers seront transmis à la méthode. C'est un raccourci pour créer un tableau manuellement.

Pour utiliser varargs, vous suivez le type de dernier paramètre par un points de suspension (trois points, ...), puis un espace et le nom du paramètre. La méthode peut ensuite être appelée avec n'importe quel nombre de ce paramètre, y compris aucun.

(Source)

-3

Cela devrait fonctionner:

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

Cela donnera une erreur de compilation, et ne pas utiliser varags comme il veut –

Questions connexes