Java8 函数式接口@FunctionalInterface的秘密

本文参考自: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();
    }
}
 

猜你喜欢

转载自blog.csdn.net/qq_28666081/article/details/86761573
今日推荐