Pourquoi suis-je répété modificateur d'erreur lors de la compilation?
import java.util.*;
import java.io.*;
public final class FileListing2
{
public static void main(String... aArgs) throws FileNotFoundException
{
File startingDirectory= new File(aArgs[0]);
List<File> files = FileListing.getFileListing(startingDirectory);
//print out all file names, in the the order of File.compareTo()
for(File file : files )
{
System.out.println(file);
}
}
static public List<File> getFileListing(File aStartingDir) throws FileNotFoundException
{
validateDirectory(aStartingDir);
List<File> result = getFileListingNoSort(aStartingDir);
Collections.sort(result);
return result;
}
static private List<File> getFileListingNoSort(File aStartingDir) throws FileNotFoundException
{
List<File> result = new ArrayList<File>();
File[] filesAndDirs = aStartingDir.listFiles();
List<File> filesDirs = Arrays.asList(filesAndDirs);
for(File file : filesDirs)
{
result.add(file); //always add, even if directory
if ( ! file.isFile() )
{
//must be a directory
//recursive call!
List<File> deeperList = getFileListingNoSort(file);
result.addAll(deeperList);
}
return result;
}
}
static private void validateDirectory (File aDirectory) throws FileNotFoundException
{
if (aDirectory == null)
{
throw new IllegalArgumentException("Directory should not be null.");
}
if (!aDirectory.exists())
{
throw new FileNotFoundException("Directory does not exist: " + aDirectory);
}
if (!aDirectory.isDirectory())
{
throw new IllegalArgumentException("Is not a directory: " + aDirectory);
}
if (!aDirectory.canRead())
{
throw new IllegalArgumentException("Directory cannot be read: " + aDirectory);
}
}
}
J'ai copié ce code de ce site et suis en train de l'adapter pour notre environnement. Malheureusement, je ne peux pas obtenir le $%!@#*($ chose à compiler. Je reçois un message d'erreur à la méthode main: erreur: la répétition d'un modificateur.
public static void main(String... aArgs) throws FileNotFoundException
est la ligne marquée pour l'erreur.
Je ne vois pas de dupliquer les modificateurs ici, Tous mes accolades et des parens semblent être dans les bons endroits, et je suis complètement perplexe.
C'est ma première fois de travailler avec varargs...je ne suis pas sûr si ~c'est~ me donner un problème? J'ai scanné la Documentation Java, mais ne l'avais pas remarqué tout de drapeaux rouges. En outre, il compile juste bien quand j'ai changer String...
à String[]
. Je sens que je peut avoir une des valeurs nulles, donc je préfère le laisser String...
dans la méthode.
Quelqu'un a vu quelque chose que je suis absent? Je me sens comme je suis à la recherche à Paris dans le
le printemps casse-tête....
main(String... aArgs
ne le support de java elipse?elipse depuis Java 1.5 (2004)
La façon dont votre code est mis en forme est ni commun, ni les erreurs faciles à voir. Veuillez envisager d'utiliser un code formatter (la plupart des IDEs ont intégré).
Ligne 8 doit être modifié pour FileListing2.getFileListing(startingDirectory) Ensuite, vous devez ajouter/corriger un retour à getFileListingNoSort. Ensuite, il doit compiler. Edit: répéter ce qui se dit Oscar ci-dessous.
OriginalL'auteur dwwilson66 | 2012-04-23
Vous devez vous connecter pour publier un commentaire.
Dans la méthode
getFileListingNoSort()
la lignereturn result;
est en dehors de la méthode, de déplacer une ligne vers le haut pour le mettre à l'intérieur, où il appartient.Bonne prise. Même message d'erreur après, si. Code révisé publié
Même erreur:
return result;
est égaré dans le code mis à jour; il devrait être dans la dernière ligne dans la méthode, juste avant la fermeture}
. Aussi, dans la deuxième ligne de lamain()
utilisation d'une méthode deFileListing2
au lieu deFileListing
OriginalL'auteur Óscar López
Je ne pouvais pas reproduire votre répété modificateur d'erreur (à l'aide du JDK 1.7.0), mais l'instruction de retour de la méthode
getFileListingNoSort
n'est pas dans le corps de la méthode.Veuillez formater votre code, de sorte qu'il est logique et vous verrez ce genre de questions. Le suivant compile amende:
C:\Users\x46332\Desktop\dev\java\bin>javac FileListing3.java
.\FileListing.java:22: error: repeated modifier
public static void main(String[] args) throws FileNotFoundException
` ^ ` je suis en cours d'exécution java version "1.7.0_02"OriginalL'auteur Michael Schmeißer