Java的函数式接口

Java的函数式接口

前面介绍了Lambda表达式,它所用的场所是创建只有一个抽象方法的接口的实例。这里**只有一个抽象方法的接口就是函数式接口。**

如果一个接口包括两个及以上抽象方法,那么不能使用Lambda表达式,必须采用匿名内部类来创建这个接口的实例。

因此只有函数式接口才可以写成Lambda表达式的形式:

(1)将Lambda表达式赋值给函数式接口,如下所示:

interface Convert{
	Integer convert(String str);
}
public class test{
	public static void main(String[] args) {
        //直接将Lambda表达式赋值给Convert接口变量
		Convert cov=str->Integer.valueOf(str); 
		Integer i=cov.convert("99");
		System.out.println(i);
	}
}

程序执行过程如下图:

在这里插入图片描述

(2)将Lambda表达式作为函数式接口类型的参数传给某个方法

interface InterfaceA{
	void taste();
}
class LamdabTest{
	//普通方法1,其方法参数是接口1的一个对象
	public void eat(InterfaceA ia) {
		ia.taste();
}
public class test{
	public static void main(String[] args) {
		LamdabTest lt=new LamdabTest();
		lt.eat(()->System.out.println("苹果的味道很好"));
	}
}

(3)使用函数式接口对Lambda表达式进行强制类型转换

Object obj=(Runnable)()->{
    for(int i=0;i<100;i++){
        System.out.println(i);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章