Lambda表达式

Lambda表达式

 * 匿名内部类:为了防止过多 没有本身作用的类出现,就只是为了重写一些抽象方法,可以定义为匿名内部类
 * Lambda表达式 : 可以简化匿名内部类
 * 前提: 函数式接口
 * 函数式接口: 只有一个抽象方法的接口
 * 强制检查函数式接口: @FunctionalInterface
 * 
 * 语法:
 *     () -> {}
 *     () : 匹配要重写的抽象方法的参数列表
 *  -> : lambda符号,箭头符号,具有上下文推到的作用
 *  {} : 匹配要重写的抽象方法的方法体

public class LambdaDemo01 {

	public static void main(String[] args) {
		//匿名内部类:有些实现类,没有自己本身的作用,就是为了重写抽象方法,浪费类名,  我们可以使用匿名内部类
		//普通的匿名内部类,可以省去一个类名(这个类只是为了实现接口,没有其他意义)   实现方法:
		String y = new ABC({
			@Override
			public String haha(int a, int b) {
				System.out.println(a+b);
				return ""+a+b;
			}
		}).haha(5, 6);
		System.out.println(y);
		/*
		 *运用Lambda表达式:只能运用于函数式接口,也就是: 必须是接口,接口中只能有一个抽象方法
		 *方法是	惟一的抽象方法的(参数列表)->{语句体};
		 *优化:
		 *参数列表中的数据类型声明可以省去,只写变量
		 *语句体中只有一句return ,可以将return 省略      (注意原来接口式函数是有返回值类型的)
		 *如果参数只有一个或者语句体只有一个   可以省去()或者{}
		 */
		
		ABC x = (a,b)->a+b+"重写的语句体";
		System.out.println(x.haha(6,20));
	}
}

interface ABC{
	String haha(int a,int b);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值