关于该接口中的第一个参数File对象,我实在想不出他在方法里有什么用处我看了一下File类里面的带参的list方法,他里面也只是把this对象传给了accept方法,也就是把调用带参list方法的那个文件对象传递进去,但是accept的方法的实现过程里丝毫用不到File对象的东西,就可以达到按指定后缀或者字符串过滤的功能不是?各位有何高见啊本人是新手,莫喷我啊

解决方案 »

  1.   

    accept
    boolean accept(File dir,
                   String name)测试指定文件是否应该包含在某一文件列表中。 参数:
    dir - 被找到的文件所在的目录。
    name - 文件的名称。 
    返回:
    当且仅当该名称应该包含在文件列表中时返回 true;否则返回 false。
    例如如果当前为一目录,应该返回true
    if(dir.isDirectory()){
    return true;
    }否则你连目录都看不到
      

  2.   

    返回:
    当且仅当该名称应该包含在文件列表中时返回 true;否则返回 false。
      

  3.   

        public String[] list(FilenameFilter filter) {
    String names[] = list();
    if ((names == null) || (filter == null)) {
        return names;
    }
    ArrayList v = new ArrayList();
    for (int i = 0 ; i < names.length ; i++) {
        if (filter.accept(this, names[i])) {
    v.add(names[i]);
        }
    }
    return (String[])(v.toArray(new String[0]));
        }这段是从jdk的File类里考出来的,一个文件对象在调用他自己的list(带参)方法是,实际上是先调用他的list()方法得到当前目录下的文件的String数组然后再调用accept方法。。那么也就是说调用accept方法是已经进入到目录了呀
    btw:谢谢你
      

  4.   

    对,但是文件列表在调用accept时已经得到了我的理解是,list(带参)方法只能被文件(夹)对象调用,也就是fileobject.list(new FilenameFilter()),文件列表就是fileobject的列表啊,我已经得到了,不明白为什么还需要再在接口中显式的用一个参数来表示呢