对于lambda表达式的使用

lambda表达式的应用

首先我们要理解lambda表达式的实质——一个可传递的代码块。
在引入lambda表达式之前,我们在Java中是无法将一个代码块赋给一个变量

我们可以将一个lambda表达式赋给一个函数式接口(即只有一个抽象方法的接口)、
如:
interface Com
{
int compare(int a , int b);
}
Com 接口中有一个抽象方法。我们可以创建Com变量。并用一个
x = (int a, int b)->{
if(a>b) return 1;
else return 0;
};
这样compare方法就由一个lambda表达式实现了。
即此时对于x对象引用的compare方法实际上为
int compare(int a,int b)
{
if(a>b)return 1;
else return 0;
}
我们直接用一个例子说明:

public class test {
 public static void main(String []args)
 {
  test.talk(()->System.out.println("欢迎看我的博客"));
 }
 public static void talk(A c)
 {
  c.say();
 }
}
interface A
{
 void say();
}

运行结果为
在这里插入图片描述
可以看到,我们的talk方法有一个类型为A的参数,由于A接口只有一个方法,所以这是一个函数式接口。我们可以将一个lambda表达式赋给这个接口。我们可以看见这个的效果,当我们运行talk方法时,它将调用c.say。lambda表达式的作用就显现出来了——lambda表达式将say方法实现了。
我们再来看一个例子:

public class test {
 public static void main(String []args)
 {
  talk(()->System.out.println("欢迎看我的博客"));
  write((int c)-> System.out.println(c));
 }
 public static void talk(A c)
 {
  c.say();
 }
 public static void write(B c)
 {
  for(int i = 1 ; i < 10 ; i++)
   c.writedowm(i);
 }
}
interface A
{
 void say();
}
interface B
{
 void writedowm(int value);
}

结果是:
在这里插入图片描述
我们可以看见每一次调用writedowm方法实际上执行的就是lambda表达式中的代码。
Java语言引入lambda表达式的一个优点就是:可以对代码进行处理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值