Lambada表达式(阿里云开发者社区学习笔记)

Lambada

原始的方法

interface IMessage{
public void send(String str);'
}
public class JavaDemo{
public static void main(String args[]){
IMessage msg = new IMessage(){
public void send(String str){
System.out.println("消息发送" + str);
}
};
msg.send("www.mldn.cn");
}
}

使用Lambada

interface IMessage{
public void send(String str);'
}
public class JavaDemo{
public static void main(String args[]){
IMessage msg = (str)->{
System.out.println("发送消息"+str);
};
msg.send("www.mldn.cn");
}
}

Lambda表达式如果要想使用,那么必须有一个重要的实现要求:SAM(single Abstract Method),只有一个抽象方法,以之前IMessage接口为例,在这个接口里面发现只是提供欧冠有一个send()方法,除此之外没有任何的其他方法定义,所以这样的接口就被称为函数式接口,而只有函数式接口才可以被Lambda表达式所使用。
使用函数式接口注解

@FunctionalInterface // 函数式接口
interface IMessage{
public void send(String str);
}
public class JavaDemo{
public static void main(String args[]){
IMessage msg = (str)->{
System.out.println("发送消息"+str);
};
msg.send("www.mldn.cn");
}
}
`

对于Lambda表达式而言,提供有如下几种格式:
‒ 方法没有参数:()->{}
‒ 方法有参数:(参数,参数)->{}
‒ 如果现在只有一行语句返回:(参数,参数)->语句;
简化Lambda表达式

@FunctionalInterface // 函数式接口
interface IMath{
public int add(int x , int y);
}
public class JavaDemo{
public static void main(String args[]){
IMath msg = (t1,t2)->t1+t2;
System.out.println(msg.add(10,20));
}
}

利用Lambda表达式的确可以摆脱传统面向对象之中关于结构的限制,使得代码更加的简便

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值