package dirlist;import java.io.*;public class DirList {
public static void main(String[] args) {
try {
File path = new File(".");
String[] llist;
if(args.length == 0)
llist = path.list();
else
llist = path.list(new DirFilter(args[0]));
System.out.println(llist);
for(int i = 0; i < llist.length; i++)
System.out.println(llist[i]);
} catch(Exception e) {
e.printStackTrace();
}
}
}class DirFilter implements FilenameFilter {
String afn;
DirFilter(String afn) { this.afn = afn; }
public boolean accept(File dir, String name) {
System.out.println("a");
// Strip path information:
String f = new File(name).getName();
return f.indexOf(afn) != -1;
}
} ///:~
报错:
Exception in thread "main" java.lang.Error: 无法解析的编译问题:
类型 File 中的方法 list(FilenameFilter)对于参数(DirFilter)不适用 at dirlist.DirList.main(DirList.java:13)

解决方案 »

  1.   

    我这儿运行正常的啊!
    jdk版本:
    java version "1.6.0_06"
    Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
      

  2.   

    我用Eclipse 测试的 刚copy完就直接报错了 不知道怎么回事
      

  3.   

    我的jdk版本是:
    java version "1.6.0_10-rc2"
    Java(TM) SE Runtime Environment (build 1.6.0_10-rc2-b32)
    Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)
    那不应该呀
      

  4.   

    闹鬼了,你确定这是你eclipse要编译的代码?
    你确定你class DirFilter implements FilenameFilter 了?
      

  5.   

    class DirFilter implements FilenameFilter 是另一个文件 这个没有出错啊
    怎么clean 
      

  6.   


    javac 编译源文件 .class 
    如果源文件有package  javac -d . HelloWorld.java
    java 公共类类名
    java 包名.类名 其他编译软件对于打包代码容易出现错误
      

  7.   

    现在好了 谁能帮忙解释下 accept的调用原理 是每实例化一个 new DirFilter(args[0]) 后,系统自动调用该方法么? 我没记得interface中的方法有自动调用的, 万分感谢
      

  8.   

    .class放到你打的包里了  当前目录\dirlist文件夹下因为你用path调用list,所以过滤的范围就是path路径下的,"."代表当前路径,所以list的返回值就是当前路径下满足DirFilter中accept方法中返回值为真的文件或文件夹名如果list中无参数,则返回所有path路径下的文件或文件夹名