函数接口与lambda表达式

函数接口:只有一个抽象方法的接口称之为函数接口。
lambda表达式本质上是一个函数接口的实例,实现了接口内的这个唯一抽象方法,从而实现了这个接口。

// Java program to demonstrate lambda expressions 
// to implement a user defined functional interface. 

// A sample functional interface (An interface with 
// single abstract method 
interface FuncInterface 
{ 
	// An abstract function 
	void abstractFun(int x); 

	// A non-abstract (or default) function 
	default void normalFun() 
	{ 
	System.out.println("Hello"); 
	} 
} 

class Test 
{ 
	public static void main(String args[]) 
	{ 
		// lambda expression to implement above 
		// functional interface. This interface 
		// by default implements abstractFun() 
		FuncInterface fobj = (int x)->System.out.println(2*x); 

		// This calls above lambda expression and prints 10. 
		fobj.abstractFun(5); 
	} 
} 

输出:

10

格式


参数列表的参数不必写类型,因为可以通过接口中的唯一抽象方法推断出类型。

返回类型

  1. 函数体如果只有一条语句,这个语句的返回类型就是表达式的返回类型。
  2. 如果有多条语句,需要显式的使用return来返回。

参考:
https://hashnode.com/post/anonymous-functions-in-java-explained-cj1opkbj8000sml53bsq6r6cj
https://www.geeksforgeeks.org/lambda-expressions-java-8/
https://www.geeksforgeeks.org/functional-interfaces-java/

posted @ 2020-01-22 11:50  开局一把刀  阅读(7)  评论(0)    收藏  举报