java File类
源码*********importjava.io.*;classFileAcceptimplementsFilenameFilter{Stringstr=null;Fil...
源码*********
import java.io.*;
class FileAccept implements FilenameFilter{
String str=null;
FileAccept(String s){
str="."+s;
}
public boolean accept(File dir,String name){
return name.endsWith(str);
}
}
public class File {
public static void main(String args[]){
File dir=new File("E:/ch8");
FileAccept acceptCondition=new FileAccept("java");
File fileName[]=dir.listFiles(acceptCondition);
for(int i=0;i<fileName.length;i++){
System.out.printf("\n%s%d",fileName[i].getName(),fileName[i].length());
}
}
}
错误提示******
C:\Users\liangming\Desktop\java\File.java:10: FileAccept 不是抽象的,并且未覆盖 java.io.FilenameFilter 中的抽象方法 accept(java.io.File,java.lang.String)
class FileAccept implements FilenameFilter{
^
C:\Users\liangming\Desktop\java\File.java:23: 找不到符号
符号: 构造函数 File(java.lang.String)
位置: 类 File
File dir=new File("E:/ch8");
^
C:\Users\liangming\Desktop\java\File.java:25: 找不到符号
符号: 方法 listFiles(FileAccept)
位置: 类 File
File fileName[]=dir.listFiles(acceptCondition);
^
C:\Users\liangming\Desktop\java\File.java:27: 找不到符号
符号: 方法 getName()
位置: 类 File
System.out.printf("\n%s%d",fileName[i].getName(),fileName[i].length());
^
C:\Users\liangming\Desktop\java\File.java:27: 找不到符号
符号: 方法 length()
位置: 类 File
System.out.printf("\n%s%d",fileName[i].getName(),fileName[i].length());
^
5 错误
Process completed. 展开
import java.io.*;
class FileAccept implements FilenameFilter{
String str=null;
FileAccept(String s){
str="."+s;
}
public boolean accept(File dir,String name){
return name.endsWith(str);
}
}
public class File {
public static void main(String args[]){
File dir=new File("E:/ch8");
FileAccept acceptCondition=new FileAccept("java");
File fileName[]=dir.listFiles(acceptCondition);
for(int i=0;i<fileName.length;i++){
System.out.printf("\n%s%d",fileName[i].getName(),fileName[i].length());
}
}
}
错误提示******
C:\Users\liangming\Desktop\java\File.java:10: FileAccept 不是抽象的,并且未覆盖 java.io.FilenameFilter 中的抽象方法 accept(java.io.File,java.lang.String)
class FileAccept implements FilenameFilter{
^
C:\Users\liangming\Desktop\java\File.java:23: 找不到符号
符号: 构造函数 File(java.lang.String)
位置: 类 File
File dir=new File("E:/ch8");
^
C:\Users\liangming\Desktop\java\File.java:25: 找不到符号
符号: 方法 listFiles(FileAccept)
位置: 类 File
File fileName[]=dir.listFiles(acceptCondition);
^
C:\Users\liangming\Desktop\java\File.java:27: 找不到符号
符号: 方法 getName()
位置: 类 File
System.out.printf("\n%s%d",fileName[i].getName(),fileName[i].length());
^
C:\Users\liangming\Desktop\java\File.java:27: 找不到符号
符号: 方法 length()
位置: 类 File
System.out.printf("\n%s%d",fileName[i].getName(),fileName[i].length());
^
5 错误
Process completed. 展开
3个回答
展开全部
其实你的想法没错,但是你的类的命名有问题,File类是你定义的类,而在FileAccept 类中需要实现
FilenameFilter中的accept方法,这个方法得参数其中之一是java.io.File类,而像你这么写,编译器会认为你这个File是你自己定义的File,所以会说你没实现accept方法,解决方法有两个,一是在每个需要用到java.io.File类时用全限定类名,就像
public boolean accept(java.io.File dir,String name){
return name.endsWith(str);
}
第二个就是把你自己的File类改成别的名字
FilenameFilter中的accept方法,这个方法得参数其中之一是java.io.File类,而像你这么写,编译器会认为你这个File是你自己定义的File,所以会说你没实现accept方法,解决方法有两个,一是在每个需要用到java.io.File类时用全限定类名,就像
public boolean accept(java.io.File dir,String name){
return name.endsWith(str);
}
第二个就是把你自己的File类改成别的名字
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询