本文参考自:https://mp.weixin.qq.com/s/mOLQa2yOOmyJ2J9PWwE3NQ (以下为个人快速阅读总结部分)
前沿:
jdk1.8引入函数式接口,即SAM(即single abbstrat method),一个只允许定义一个抽象方法,默认方法、静态方法、Object有的除外。
例子如下:
@FunctionalInterface //用来标记编译时检查是否符合SAM标准,不符合则报错
interface OperateSystem {
// lamdba所识别到的方法
void run();
// 默认方法,jdk1.8后可以在接口声明
default void start() {
System.out.println("===============>系统启动");
}
default void shutdown() {
System.out.println("===============>系统关闭");
}
// 静态方法,jdk1.8后可以在接口声明
static void clear() {
System.out.println("===============>系统清理");
}
// Object.java原本就有的
String toString();
boolean equals(Object obj);
}
用法如下:
public class Operate {
public static void main(String[] args) {
OperateSystem os = () -> {
System.out.println("run");
};
os.run();
}
}
-