1.概念与定义
- 概念
函数式接口在Java中是指:有且仅有一个抽象方法的接口 - 格式
public interface MyFunction {
public abstract void function();
}
- 检测是否为函数式接口
@FunctionalInterface
@FunctionalInterface
public interface MyFunction {
public abstract void function();
}
2.使用
- 一般函数式接口可以作为方法的返回值和参数使用
函数式接口
@FunctionalInterface
public interface MyFunction {
public abstract void function();
}
接口实现类
public class MyFunImpl implements MyFunction {
@Override
public void function() {
System.out.println("使用实现类重写接口中的抽象方法");
}
}
主程序
public class Demo01 {
public static void main(String[] args) {
//调用fun方法,参数为接口,可以传递接口的实现类对象,重写接口抽象方法
fun(new MyFunImpl());
//调用fun方法,参数为接口,可以使用匿名内部类,重写接口抽象方法
fun(new MyFunction() {
@Override
public void function() {
System.out.println("使用匿名内部类重写接口中的抽象方法");
}
});
//调用fun方法,参数为函数式接口,可以使用Lambda函数,重写接口抽象方法
fun(()->{
System.out.println("使用Lambda函数重写接口中的抽象方法");
});
//{}内只有一行语句,可以简化Lambda表达式,去掉{}
fun(()-> System.out.println("使用简化Lambda函数重写接口中的抽象方法"));
}
public static void fun(MyFunction myfun){
myfun.function();
}
}