Java函数式编程(十一):遍历目录
我们不再使用传统的冗长的外部迭代器,而是使用优雅的函数式来实遍历这个列表。我们把Files类的isDirectory方法的引用传了进去,而不是传递一个lambda表达式。最后我们用一个内部迭代器来打印出目录的名字。程序将会打印出当前目录的子目录。Java很早前就提供了一个list()方法的变种,用来筛选文件名。accept()方法返回true的话这个文件名就会出现在返回的列表中,返回false则不在。我们不用再忍受这样的痛苦了,只需传一个接受两个参数并返回bollean的lambda表达式进去就好了。Java编译器会搞定剩下的事。我们仍然使用lambda表达式来实现而不是去创建匿名内部类。现在来看一个列出当前目录下所有隐藏文件的例子。这个lambda表达式接受的是一个File实例的参数,在这个例子中参数名是file。
用户评论