Lambda表达式:
书写方法: e -> System.out.println( e )
1. 三部分构成
参数列表
符号 ->
函数体 : 有多个语句,可以用{} 包括, 如果需要返回值且只有一个语句,可以省略 return
2. 访问控制:
可以访问类的成员变量和局部变量(非final会自动隐含转为final)
java.lang.Runnable:
jdk8以前:
Jdk8 lambda:
简洁,此方方法使用的场景只能是实现的方法中只有一行语句:
java.util.concurrent.Callable:
如下两个Callable任务分别返回false和0到10整数之和。
java.security.PrivilegedAction:
参考: https://blog.csdn.net/teamlet/article/details/1809165
java.util.Comparator:
jdk8以前:
Jdk1.8 lambda:
java.io.FileFilter:
在File操作中我们可以实现 java.io.FileFilter 类来并在其accept 方法中编写过滤文件的代码实现。本例假设在windows系统中D盘有个文件夹resource,里边有一些文件,有.jc,.html,.doc 等各种格式。现在要选出js文件。
Jdk1.8以前:
Jdk lambda:
上述(f)中只有一个参数,所以括号可以省略;
java.nio.file.PathMatcher:
- 自定义实现类:
2. lamda表达式:
3. 使用FileSystem提供的PathMatcher
java.lang.reflect.InvocationHandler:
https://jerrywang-sap.iteye.com/blog/2429947
java.beans.PropertyChangeListener:
测试类:
Lambda可以这样: