Lambda表达式

 

这是一个匿名内部类的定义,IComputer是一个函数式接口,匿名内部类作为实现类将add方法实现:

interface IComputer{
	int add(int a,int b);
}
public class Test {

	public static void main(String[] args) {
		IComputer computer = new IComputer() {
			@Override
			public int add(int a,int b) {
				return a+b;
			}
		};
	}
}

Lambda表达式的作用就是将函数式接口匿名内部类的定义简化

因为函数式接口中只有一个抽象函数,所以第一步简化可以将定义简化成这样:

interface IComputer{
	int add(int a,int b);
}
public class Test {

	public static void main(String[] args) {
		IComputer computer = (int a,int b)->{
			return a+b;
		};
	}
}

 这时因为函数体中只有一条有效代码,且是返回值语句,所以下一步可以简化成这样:

interface IComputer{
	int add(int a,int b);
}
public class Test {

	public static void main(String[] args) {
		IComputer computer = (int a,int b)->a+b;
	}
}

但如果函数体中有多条语句的话就不能简化第二步了。

如果函数体只有一条有效代码但是不是返回值,那是否可以进行第二步简化呢?答案是可以的,只需将那一行代码写在->后面即可:

interface IComputer{
	void add(int a,int b);
}
public class Test {

	public static void main(String[] args) {
		IComputer computer = (int a,int b)->System.out.println(a+b);
	}
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值