@FunctionalInterface
public interface Handler {
public abstract void handler1();java
public default void defaultMethod(){
System.out.println("this is default method");
}
// 靜態方法
public static void staticMethod(){
System.out.println("staticMethod");
}
}ide
接口有且僅有一個抽象方法函數
容許定義靜態方法this
容許定義默認方法.net
容許java.lang.Object中的public方法接口
該註解不是必須的,若是一個接口符合"函數式接口"定義,那麼加不加該註解都沒有影響。加上該註解可以更好地讓編譯器進行檢查。若是編寫的不是函數式接口,可是加上了@FunctionInterface,那麼編譯器會報錯get
public class Demo {
public static void main(String[] args) {
//JobHandler jobHandler=new JobHandlerImpl();
//jobHandler.excute();
Handler handler=new Handler() {
@Override
public void handler1() {
System.out.println("3123123123123123123");
}
};
handler.defaultMethod();
Handler.staticMethod();
}
}
編譯器