Lambda表达式

编写格式
当方法的形参是一个接口或抽象类对象时,可用匿名内部类作为实参传递,也可用Lambda表达式,格式如下:

// 假设一个形参为接口对象的方法
public static void inIt(Inter in){
	in.into();// in为Inter类型的接口对象
}

// 现在需要调用该方法 有两种方式:
public static void main(String[] args){
	// ①匿名内部类的编写格式
	inIt(new Inter(){
		@Override
		public void into(){
			// 方法体
		}
	});

	// ②Lambda表达式的编写格式
	inIt(()->{ /*方法体*/ });
}

上述两种方法达到的效果是一样的,
都是调用了inIt()方法并重写了into()方法被调用。

格式:(形式参数) - > {代码块}
形式参数:需要重写的方法中有多个参数用逗号隔开,没有留空即可。
" -> " :固定写法,代表指向动作。
代码块:方法的实现内容。

Lambda表达式使用前提
1.必须是接口。
2.接口中必须有且仅有一个抽象方法。

Lambda表达式的省略模式
1.参数类型可省略不写(若省略必须全省略),形参只有一个时 "( )“括号可省略,没有形参时”( )"括号不能省略。
2.方法体只有一条语句 "{ ;}"大括号和封号可省略。

Lambda表达式和匿名内部类的区别
1.前提条件不同:匿名内部类可操作接口,抽象类,具体类。而Lambda表达式只能操作接口。
2.使用限制不同:若接口中只有一个抽象方法,Lambda表达式和匿名内部类均可使用。若接口中有多个抽象方法,则只能使用匿名内部类。
3.实现原理不同:匿名内部类编译后会单独生成一个.class字节码文件存在于硬盘中。而Lambda表达式不会单独生成.class字节码文件,而是随着运行时动态生成.class字节码文件,且不会存在于硬盘中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值