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

 编译器

相关文章
相关标签/搜索