Lamda表达式
Lamda表达式
函数式编程的产生(匿名内部类)
interface Mes{ public void speak(); } public class Lam { public static void main(String[] args) { fun(new Mes(){//匿名内部类 public void speak(){//覆写方法 System.out.println("hello!"); } }); } public static void fun(Mes m){//传递接口类型参数 m.speak(); } }
【2】
匿名内部类
Book接口
interface Book{ public static final double price=21.8; public static final String title="诗词"; public void show(double price,String title); } public class Lam { public static void main(String[] args) { fun(new Book(){//匿名内部类 public void show(double price,String title){//覆写方法 System.out.println(price+" "+title); } }); } public static void fun(Book b){//传递接口类型参数 b.show(34.6,"歌曲"); } }
研究Lamda必须先熟悉匿名内部类
嵌套太多的原因
JDK1.8引入
【3】
格式
fun((参数类型 参数)->执行语句);
interface Book{ public static final double price=21.8; public static final String title="诗词"; public void show(double price,String title); } public class Lam { public static void main(String[] args) { // fun(new Book(){//匿名内部类 // public void show(double price,String title){//覆写方法 // System.out.println(price+" "+title); // } // }); fun((double price,String title)->System.out.println(price+" "+title)); } public static void fun(Book b){//传递接口类型参数 b.show(34.6,"歌曲"); } }
【4】
Lamda三种形式
(参数)->单行语句
(参数)->{语句;}
(参数)->表示式
interface Book{ public static final double price=21.8; public static final String title="诗词"; public void show(double price,String title); } public class Lam { public static void main(String[] args) { //Lamda (参数)->{语句;} fun((double price,String title)->{ System.out.println("书的价格:"+price); System.out.println("书的名字:"+title); }); } public static void fun(Book b){//传递接口类型参数 b.show(34.6,"歌曲"); } }
【5】
interface Book{ public static final double price=21.8; public static final String title="诗词"; public String show(double price,String title); } public class Lam { public static void main(String[] args) { //Lamda (参数)->表示式 fun((double price,String title)-> "书的价格:"+price+"书的名字:"+title ); } public static void fun(Book b){//传递接口类型参数 System.out.println(b.show(34.6,"歌曲")); } }
【7】
add(x+y)练习Lamde
interface Inte{ public int add(int x,int y); } public class Lam { public static void main(String[] args) { //Lamda fun( (a,b)->a+b ); } public static void fun(Inte i){ System.out.println(i.add(34,4)); } }
总结:
Lamde最终解决的是 定义过多匿名内部类的问题
Lamda表达式的更多相关文章
- 解读ASP.NET 5 & MVC6系列(12):基于Lamda表达式的强类型Routing实现
前面的深入理解Routing章节,我们讲到了在MVC中,除了使用默认的ASP.NET 5的路由注册方式,还可以使用基于Attribute的特性(Route和HttpXXX系列方法)来定义.本章,我们将 ...
- SQL、Linq、lamda表达式 同一功能不同写法
一.SQL.Linq.lamda表达式 同一功能不同写法 SQL LINQ Lambda SELECT * FROM HumanResources.Employee from e in Employe ...
- [.net 面向对象程序设计进阶] (5) Lamda表达式(一) 创建委托
[.net 面向对象程序设计进阶] (5) Lamda表达式(一) 创建委托 本节导读: 通过学习Lambda表达式,学会创建委托和表达式目录树,深入了解Lambda的特性,让你的代码变的更加清晰. ...
- [.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门
[.net 面向对象程序设计进阶] (6) Lamda表达式(二) 表达式树快速入门 本节导读: 认识表达式树(Expression Tree),学习使用Lambda创建表达式树,解析表达式树. 学习 ...
- [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用
[.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用 本节导读:讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构.是 ...
- Linq和Lamda表达式的简单处理方式
一 什么是LINQ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性. ...
- python 内置函数 lamda表达式。 open 文件方法
lamda 表达式 lambda表达式 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: 普通的条件语句 if 1 == 1: name = 'kaixin' else: ...
- 为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式
为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式,代码如下: public class DataComparer<T>:IEqualityCompare ...
- 【python】lamda表达式,map
一个很好的博客:http://blog.csdn.net/mathboylinlin/article/details/9413551 博客不让转载,我只摘抄了里面几个例子,更多内容到博客里去看 lam ...
随机推荐
- MFC 文件按行读写 CStdioFile
//写文件 CStdioFile file; file.Open("test.txt",CFile::modeCreate|CFile::modeReadWrite); file. ...
- CSRF和XSS
XSS(跨站脚本攻击): 攻击者发现XSS漏洞——构造代码——发送给受害人——受害人打开——攻击者获取受害人的cookie——完成攻击 XSS是什么?它的全名是:Cross-site scriptin ...
- 昨天晚上也弄不清楚是自己密码被盗了还是由于ip冲突
所以还是尽量要相信自己所见到的,今天上午是安卓课程,说实话,昨天晚上都是2:30睡的,现在硬是要把时间待这么晚才回去睡,是因为我想尽快入睡,昨天晚上就是眼睛都有点睁不开了,所以就睡得很快,但是早上也是 ...
- 批量update
参见http://lj.soft.blog.163.com/blog/static/7940248120109215191358/ 例子:update CarSeriesDetail set clic ...
- C#开发微信公众平台-就这么简单(附Demo)(转载)
转载地址:http://www.cnblogs.com/xishuai/p/3625859.html 写在前面 服务号和订阅号 URL配置 创建菜单 查询.删除菜单 接受消息 发送消息(图文.菜单事件 ...
- javascript散列表实现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- hdu 4185 二分图匹配
题意用1*2的木板覆盖矩阵中的‘#’,(木板要覆盖的只能是‘#’),问最多能用几个木板覆盖 将#抽象为二分图的点,一个木板就是一个匹配,注意最后结果要除以2 Sample Input 1 6 .... ...
- [转载]GMM的EM算法实现
在聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut一文中我们给出了GMM算法的基本模型与似然函数,在EM算法原理中对EM算法的实现与收敛性证明 ...
- HyperLink控件
设置链接 NavigateUrl 填写链接 text 属性 为显示内容
- 国家与城市的sql
--省表 create table tb_province ( pID int NOT NULL PRIMARY KEY, pName ) ) --省 ,'北京市') ,'天津市') ,'上海市') ...