zoukankan      html  css  js  c++  java
  • FileFilter过滤器

    FileFilter过滤器原理:

    File对象的listFiles()方法做了三件事情:

    第一件,遍历得到所有的文件/文件夹;

    第二件,调用入参过滤器接口自己DIY的实现类中重写的accept()方法;

    第三件,将遍历得到的文件/文件夹当入参传入accept()方法;

    DIY的FileFilter接口的实现类:

    其中,过滤要最开始创建File对象时候,是个c://abc文件夹的路径;然后从这个文件夹目录下开始遍历;

    主程序调用的地方:

     使用匿名内部类简化代码:

    其中,FileFilter接口的实现类只使用了一次,所以可以使用匿名内部类的写法简化代码;

    写成FilenameFilter接口给过滤器的方式:

    其中,FilenameFilter接口的源码:

    可以看出,只含有一个抽象方法(没有方法体,没有方法体的花括号)

    所以可以使用Lambda表达式写法优化这两个接口的写法(接口中只有一个抽象方法):

    () -> {}  即参数列表括号,箭头指向方法体的花括号写法;

    简化Lambda表达式写法(方法体花括号中代码只有一行):

    其中,简化了内容有:去掉了参数列表中参数的类型,方法体的花括号和return关键字;

    最后高级到亲妈认不出的写法(了解了解。。):

  • 相关阅读:
    驱动Makefile
    ioremap
    file结构体
    Python基础-语法知识
    企业运营对 DevOps 的「傲慢与偏见」
    漂亮得不像实力派!
    如何用 OneAPM 优化你的 Node.js 应用?
    全球说:要给 OneAlert 点100个赞
    DevOps 和技术债务偿还自动化
    PHP 性能分析与实验(二)——PHP 性能的微观分析
  • 原文地址:https://www.cnblogs.com/wmqiang/p/10732468.html
Copyright © 2011-2022 走看看