lamda表达式

package text;

@FunctionalInterface //该注解告诉这个接口里面只能够定义一个抽象方法
//接口里面只能定义一个抽象方法,这样编写的lamda表达式才能去匹配这个接口
interface IMessage{
	public void print(String info);
} 

@FunctionalInterface
interface IMath{
	public int add(int x,int y);
}

/*******lamda表达式方法体的使用形式*******
 * 只有一行语句:(参数) -> 程序的执行语句;
 * 有多行语句:(参数) -> {程序的执行语句};
 * 简单返回: (参数) -> 表达式;
 * */

public class LamdaTest {
	public static void main(String[] args) {
		//只有一行语句:(参数) -> 程序的执行语句;
		IMessage msg = (info) -> System.out.println(info);
		msg.print("hello 你好");
		
		//有多行语句:(参数) -> {程序的执行语句};
		IMath m = (i,j) -> {
			int result = i + j ;
			System.out.println("第一个数字  "+i);
			System.out.println("第二个数字  "+j);
			System.out.println("m计算结果1:   "+result);
			return result;
		};
		System.out.println("m计算结果2:   "+m.add(10, 20));
		
		//简单返回: (参数) -> 表达式
		IMath mm = (i,j) -> i + j ;
		System.out.println("mm计算结果:"+mm.add(10, 20));
	}
}
//这是函数式编程的语法形式,操作结构:(参数)-> 语句(方法体)

猜你喜欢

转载自blog.csdn.net/cinderella___/article/details/80385809