Discuss / Java / 疑问:FilenameFilter不是一个接口吗?为什么还可以使用new进行实例化呢?

疑问:FilenameFilter不是一个接口吗?为什么还可以使用new进行实例化呢?

Topic source

在本节 遍历文件与目录  一段的示例代码中出现了如下这段代码,个人有以上疑问

...

File[] fs2 = f.listFiles(new FilenameFilter() { // 仅列出.exe文件
            public boolean accept(File dir, String name) {
                return name.endsWith(".exe"); // 返回true表示接受该文件
            }
        });
...

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]
Runnable r = new Runnable() {
    // 这叫匿名类,定义的时候实现所有接口方法
    public void run() {}
}

廖雪峰

#3 Created at ... [Delete] [Delete and Lock User]

相当于:

Runnable r = new MyRunnable();

class MyRunnable implements Runnable {
    // 这叫匿名类,定义的时候实现所有接口方法
    public void run() {}
}

只用一次的类可以定义的时候顺手实现,没必要单独写个类


  • 1

Reply