什么是函数式接口?
函数式接口(Functional Interface)简单理解是仅有一个抽象方法,但可以多个非抽象方法的的借口,引用此接口的类必须实现其抽象方法.函数式接口可以被隐式转换为Lambda表达式.
1:如定义了一个函数式接口如下
@FuntionalInterface
interface GetShow{
void saymessage(String a);
}
2:函数式接口可以对现有的函数友好地支持 lambda。
JDK 1.8 之前已有的函数式接口:(这里只列举了几个,具体的可以查看API文档)
java.lang.Runnable | java.util.concurrent.Callable |
---|---|
java.util.Comparator | java.io.FileFilter |
3函数式接口的实现方法:
1:定义一个方法,参数使用的是一个函数式接口,可以传递接口的匿名内部类.
2:直接使用接口接收并调用其方法.
public class partice {
public static void main(String[] args) {
getre getre=new getre() {
public void printly(String a) {
System.out.println(a);
}
};
getre.printly("我是蔡徐坤");
}
}
//最后输出的是“我是蔡徐坤”.
当然也可以用 lambda表达式
getre getre=a->System.out.println(a);
另一种实现:
public class partice {
public static void main(String[] args) {
Getinter(a->System.out.println(a));
}
public static void Getinter(getre getres) {
getres.printly("我是蔡徐坤");
}
}
之后再慢慢学习其他衍生…