Невозможно скомпилировать метод walkFileTree в Java

Это мой класс Java:

public class PrintFiles extends java.nio.file.SimpleFileVisitor<Path> {

@Override
public FileVisitResult visitFile(Path file,
                               BasicFileAttributes attr) {
    if (attr.isSymbolicLink()) {
        System.out.format("Symbolic link: %s ", file);
    } else if (attr.isRegularFile()) {
        System.out.format("Regular file: %s ", file);
    } else {
        System.out.format("Other: %s ", file);
    }
    System.out.println("(" + attr.size() + "bytes)");
    return CONTINUE;
 }

 // Print each directory visited.
 @Override
 public FileVisitResult postVisitDirectory(Path dir,
                                      IOException exc) {
    System.out.format("Directory: %s%n", dir);
    return CONTINUE;
}


@Override
public FileVisitResult visitFileFailed(Path file,
                                   IOException exc) {
    System.err.println(exc);
    return CONTINUE;

}

public static void main(String args[])
    {

    java.nio.file.Path startingDir = Paths.get("D:\\");
    PrintFiles pf = new PrintFiles();
    Files.walkFileTree(startingDir, pf);
    }
    }

Эта строка:

 Files.walkFileTree(startingDir, pf);

выдает ошибку: PrintFiles cannot be converted to <? super Path> что приемлемо, но когда я изменяю вышеуказанную строку на:

Files.walkFileTree(startingDir, new java.nio.file.SimpleFileVisitor<Path> ());

это все еще показывает ошибку SimpleFileVisitor() has protected access in SimpleFileVisitor.Итак, как я могу запустить метод walkFileTree? Я пытаюсь запустить пример отсюда. Я также видел примеры SO, используя приведенный выше код, но не знаю, почему я сталкиваюсь с проблемой.

0 ответов

Другие вопросы по тегам