lambda表达式的引入是在JDK8之后开始的
lambda可以让我们以更精简的语法创建匿名内部类
语法:
(参数列表)->{
方法体
}
不是所有的接口都能用lambda创建,lambda创建时要求实现的接口中只能有一个抽象方法!否则不可以使用!
lambda 表达式创建时,乳沟方法只有一句代码,name方法的{}可以省略。
如果这句代码有return,如果reurn也必须忽略
package file;
import java.io.File;
import java.io.FileFilter;
public class LambdaDemo {
public static void main(String[] args) {
File dir=new File(".");
//匿名内部类写法
if (dir.isDirectory()){
// FileFilter filter=new FileFilter() {
// @Override
// public boolean accept(File file) {
// return file.getName().endsWith(".txt");
// }
// };
//lambda写法
// FileFilter filter=(File file) ->{
// return file.getName().endsWith(".txt");
// };
// File[] subs=dir.listFiles((filter);
// File[] subs=dir.listFiles((File file) ->{
// return file.getName().endsWith(".txt");
// });
/*
lambda 表达式创建时,乳沟方法只有一句代码,name方法的{}可以省略。
如果这句代码有return,如果reurn也必须忽略
*/
File[] subs=dir.listFiles((File file) ->file.getName().endsWith(".txt"));
System.out.println(subs.length);
}
}
}