Java8 实战系列-03-lambda 表达式实战
环绕执行模式
JDK1.7 引入的 TWR 语法,
令读取文件后的资源释放变得更加简洁。
public static String processFile() throws IOException {try (BufferedReader bufferedReader =new BufferedReader(new FileReader("1.txt"))) {return bufferedReader.readLine();}
}
lambda
行为参数化
上面的方法中有局限。
如果我想返回头 2 行的内容,甚至返回最频繁的,怎么办?
我们要做的就是将 processFile()
的行为参数化。
传递行为,正是 lambda 擅长的。
代码看起来可能是这样:
String result = processFile((BufferedReader br)->br.readLine()+br.readLine());
定义函数式接口
与上面我们的定义相互匹配。
/*** 文件读取* @author bbhou*/
@FunctionalInterface
public interface BufferedReaderProcessor {/*** 执行* @param bufferedReader* @return* @throws IOException*/String process(BufferedReader bufferedReader) throws IOException;}
执行一个行为
public static String processFile(BufferedReaderProcessor bufferedReaderProcessor) throws IOException {try(BufferedReader bufferedReader = new BufferedReader(new FileReader("1.txt"))) {return bufferedReaderProcessor.process(bufferedReader);}
}
传递 lambda
public static void main(String[] args) throws IOException {processFile((BufferedReader br)->br.readLine()+br.readLine());
}
目录导航
目录导航
Java8 实战系列-03-lambda 表达式实战相关推荐
- java 8 lamda,Java8中你可能不知道的一些地方之Lambda表达式实战
Java8 引入 Lambda 表达式,允许开发者将函数当成参数传递给某个方法,或者把代码本身当作数据进行处理.使用 Lambda 表达式,使得应用变得简洁而紧凑. 很多语言(Groovy.Scala ...
- 【java8新特性】——lambda表达式与函数式接口详解(一)
一.简介 java8于2014年发布,相比于java7,java8新增了非常多的特性,如lambda表达式.函数式接口.方法引用.默认方法.新工具(编译工具).Stream API.Date Time ...
- Kotlin系列之Lambda表达式(1)
今天开始后续的几篇Kotlin的文章会介绍Kotlin中Lambda表达式相关的内容. 什么是Lambda表达式 在Java8中引入了Lambda表达式,这是最令Java开发者激动和期待的一个功能.那 ...
- java8新特性之lambda表达式--超级详细版本
java8新特性之lambda表达式 1.什么是lambda表达式?为什么用它? 2. 为什么Java需要lambda表达式? 3. lambda表达式的语法 4.函数式接口 4.1 什么是函数式接口 ...
- Java8 新特性:Lambda 表达式、方法和构造器引用、Stream API、新时间与日期API、注解
Java8新特性:Lambda 表达式.方法和构造器引用.Stream API.新时间与日期API.注解 1.Java8新特性 1.1.主要的新特性: 1.2.编程风格 2.Lambda 表达式 2. ...
- java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合
java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合 比如,我有一张表: entity Category.java service CategoryServic ...
- JDK8系列之Lambda表达式教程和示例
JDK8系列之Lambda表达式教程和示例 1.Lambada 表达式简介 Lambda 表达式是一种匿名函数,但对Java中的Lambda表达式而已并不完全正确,简单来说,Lambda表达式是一种没 ...
- lambda 两个list获取交集_《Java8 实战》笔记 - Lambda 表达式
Lambda 表达式介绍 可以把Lambda表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它 有参数列表.函数主体.返回类型,可能还有一个可以抛出的异常列表.这个定义够大的,让我 ...
- java 复合方法_《Java 8 实战》Ch3: Lambda表达式(下):类型与限制、方法引用、复合...
李文轩 2019-04-23 3.5 类型的检查和判断:变量捕获限制 类型检查 Lambda的类型是从使用Lambda的上下文推断出来的. Lambda表达式需要的类型称为目标类型 . Lambda表 ...
- java8新特性之Lambda表达式入门
一 什么是Lambda表达式 Lambda表达式:可以让你的代码更加的简洁.ambda无法单独出现,需要一个函数式接口来盛放,可以说lambda表达式方法体是函数式接口的实现,lambda实例化函数式 ...
最新文章
- JavaScript创建对象的方法
- Leading and Trailing(数论题)
- springboot3.x 集成持久层框架
- JTextAre 文字右对齐 JTextArea دىكى خەتلەرنى ئوڭدىن س...
- GaussDB(DWS)应用实践丨负载管理与作业排队处理方法
- 一份超详细的VTD安装指南(内容含如何安装ubuntu系统及如何在ubuntu中安装显卡驱动)
- 使用Charles抓取百词斩单词音频、单词翻译、例句音频、例句翻译
- [SSL_CHX][2021-08-20]幸运数字们
- Anaconda介绍、安装及使用保姆级教程
- 【java】getResourceAsStream(“.properties“)配置文件无法读入问题
- linux入门怎么学
- 火山PC-安卓-易语言混合通讯教程(火山视窗)
- mac 备份文件 太大 时间机器_Mac 时间机器 Time Machine 备份速度太慢的解决方法
- Bootstrap 图片轮播
- 项管行知05--可交付成果
- CS231n - Assignment2 Tensorflow
- 操作系统中任务调度的实现
- jsp试卷分析管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
- Enet语义分割笔记
- 武汉唯众智创科技有限公司通过2020第二批产学合作协同育人项目申报指南