Lamda表达式使用
public class Lambda {
public static void main(String[] args) {
Lambda lambda=new Lambda();
String something="oop print somthing";
String something1="oop print something2";
String something2="lambda print something";
lambda.printSomething(something);
Printer printer=new Printer(){
@Override
public void print(String something){
System.out.println(something);
}
};
//use lammbda expression
//lambda表达式的使用形式是(arg1,arg2,...)->{ 代码块}
//和上面利用构造函数构造接口实现对象的作用是一样的。但是看起来更加简洁。
Printer printer1= something3->System.out.println(something3);
lambda.printSomething(something1, printer);
lambda.printSomething(something2, printer1);
}
/*
*
*/
public void printSomething(String something){
System.out.println(something);
}
public void printSomething(String something,Printer printer) {
printer.print(something);
}
}
/*
* function interface
*这里申明一个函数式接口:只有一个函数的接口
*Lambda 表达式引入的目标是:Lambda表达式原被定义为一个函数式接口的内联实现。
*/
interface Printer{
public void print(String something);
}
lambda能够写出更加紧凑的代码,便于阅读和跟踪。在性能和多核处理方法上也具有不少好处,详细需要了解stream API.
public class Lambda {
public static void main(String[] args) {
Lambda lambda=new Lambda();String something="oop print somthing";String something1="oop print something2";String something2="lambda print something";
lambda.printSomething(something);Printer printer=new Printer(){@Overridepublic void print(String something){System.out.println(something);}};//use lammbda expressionPrinter printer1= something3->System.out.println(something3);
lambda.printSomething(something1, printer);lambda.printSomething(something2, printer1);}/* * */public void printSomething(String something){System.out.println(something);}public void printSomething(String something,Printer printer) {printer.print(something);}}
/* * function interface */interface Printer{public void print(String something);}
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 ...
- Lamda表达式
Lamda表达式 函数式编程的产生(匿名内部类) interface Mes{ public void speak(); } public class Lam { public static void ...
随机推荐
- HTML 学习笔记 JavaScript(call方法详解)
http://www.cnblogs.com/f-dream/p/4950918.html
- PAT 1050. 螺旋矩阵(25)
本题要求将给定的N个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第1个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为m行n列,满足条 ...
- play with usb
1) struct usbdevfs_bulktransfer { unsigned int ep; unsigned int len; unsigned i ...
- Maven打包含有Main方法jar并运行
最近使用Kettle做定时数据抽取,因为Job更新或需求变更,修改Bug等种种原因,需要对重跑Job一般是针对每天的数据重跑一次.刚开始的做法是直接在自己的开发机器上重跑,这样速度比较慢,因为这时候你 ...
- Socket通信类
package com.imooc; import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt ...
- Android -- 获取网络数据并将数据存到本地数据库中
public static final int downloadDone = 1; // 用户model数组 ArrayList<Loginer> loginers = new Array ...
- 关系数据库—SQL学习笔记
SQL的特点: 综合统一 高度非过程化(存取路径的选择以及SQL的操作过程由系统自动完成) 面向集合的操作方式,以同一种语法结构提供多种使用方法(可以在终端键盘上直接键入SQL命令对数据库进行操作,也 ...
- 练手小游戏(代码篇之敌人AI
诶呀~又没有更新微博,去拔牙了,疼死了,休息了几天过来接着写代码~ 首先是Base.写了一个框架,照别人扒的. Base分三部分,AILocomotion(AI移动),Steering(行为基类),V ...
- CSS-垂直|水平居中问题的解决方法总结
题外话:前两天和专业老师探讨最近的一个项目,涉及到对一个浮动的盒子局中的问题,老师的解决方法打开了我的新思路.让我有了总结一下平时的居中问题的想法.不然可能忘掉了以后又要到处寻找解决办法了.另外也给我 ...
- Android Automotive开发之一《环境: JDK7&JDK8切换 》
http://ubuntuhandbook.org/index.php/2015/01/install-openjdk-8-ubuntu-14-04-12-04-lts/ 安装OpenJDK8 sud ...