これは私の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 メソッドを実行すると思いますか。