Lamdba表达式
无参数 无返回值
由三部分组成 参数 箭头 代码
格式:(参数列表)->{一些重写方法的代码}
解释说明格式:
():接口中抽象方法的参数列表,没有参数空着,多个参数 逗号隔开
->:传递参数
{}:重写方法代码
注:只有接口中只有一个抽象方法时 才能使用lamdba表达式
例一
使用lambda表达式,实现多线程
public class Demo02Lamdba {
public static void main(String[] args) {
new Thread(()->{
System.out.println(Thread.currentThread().getName()+"新线程创建");
}).start();
}
}
例二
使用lamdba表达式实现File过滤器
public class demo03递归打印多级目录 {
public static void main(String[] args) {
df(new File("D:\\JetBrains_2020\\IdeaProjects\\basic-code\\08_FileAndRecursion"));
}
private static void df(File f){
//使用lambda表达式
File[] files=f.listFiles((File dir, String name)->{
return new File(dir,name).isDirectory()||name.toLowerCase().endsWith(".java");
});//传递过滤器对象
for(File f0:files){
if (f0.isDirectory()){
df(f0);
}
else{
System.out.println(f0);
}
}
}
}