/**
* lambda表达式 JDK8推出的特性
*
* lambda可以以更简短的方式创建匿名内部类
*
* 语法:
* ([实际参数])->{
* 方法体
* }
*
* 需要注意,使用lambda创建的匿名内部类所实现的接口只能
* 有一个抽象方法。
* @author Administrator
*
*/
public class LambdaDemo1 {
public static void main(String[] args) {
Runnable r1 = new Runnable() {
public void run() {
System.out.println("hello");
}
};
Runnable r2 = ()->{
System.out.println("hello");
};
/*
* 如果该方法只有一句代码,那么方法的"{}"可以
* 省略不写。
*/
Runnable r3 = ()->System.out.println("hello");
}
}
public class LambdaDemo2 {
public static void main(String[] args) {
File file = new File(".");
/*
* 获取当前目录下所有文本文件
*/
FileFilter filter = new FileFilter() {
public boolean accept(File file) {
return file.getName().endsWith(".txt");
}
};
File[] subs = file.listFiles(filter);
for(File sub : subs) {
System.out.println(sub.getName());
}
/*
* 获取所有.dat文件
*/
//FileFilter filter1 = (f)->{
// return f.getName().endsWith(".dat");
// };
/*
* 若可以忽略"{}",那么若当前方法有返回值时,
* return关键字也需要省略。
*/
FileFilter filter1= (f)->f.getName().endsWith(".dat");
subs = file.listFiles(filter1);
for(File sub : subs) {
System.out.println(sub.getName());
}
}
}