java 函數式編程

@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();
    }
}

 編譯器

相關文章
相關標籤/搜索