jdk8新特性之lambda表达式
2017-04-13 10:44
519 查看
使用范围
只有在接受函数式接口的地方才可以使用Lambda表达式语法
Lambda表达式可以理解为一种匿名函数:它没有名称,但有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常的列表。
(参数) -> {主体 return 返回值 }
示例
定义一个函数式接口 (函数式接口就是仅仅声明了一个抽象方法的接口)package com.jdk8; import java.io.BufferedReader; import java.io.IOException; public interface FileReadInterface{ String process(BufferedReader br) throws IOException; }
定义一个实现方法
package com.jdk8; import java.io.BufferedReader; import java.io.IOException; public class FileReader { public static String processFile(String path , FileReadInterface inter){ String s = ""; try { BufferedReader br = new BufferedReader(new java.io.FileReader(path)); s = inter.process(br); } catch (IOException e) { e.printStackTrace(); } return s; } }
使用lambda表达式
public static void main(String[] args) { String path = "eclipse.ini"; String result = FileReader.processFile(path , (BufferedReader br) -> br.readLine() + "\n" + br.readLine() + "\n" + br.readLine()); System.out.println(result); }
好处:
如果有一个需求,读取 eclipse.ini的配置文件,把 第一行 和 第二行中 的内容 读取出来 第一行前面加上 first,第二行前面加上two 组成一个字符串.这种形式非常的方便灵活. 称之为 ‘行为传递’
相关文章推荐
- JDK8新特性之Lambda表达式
- 扫盲贴(一)——JDK8新特性:Lambda表达式入门
- JDK8新特性之Lambda表达式
- jdk8新特性:Lambda表达式(也称为闭包、可传递的匿名函数)与函数式接口@FunctionalInterface
- 深入浅析JDK8新特性之Lambda表达式
- JDK8新特性之Lambda表达式
- jdk8新特性->lambda表达式
- JDK8新特性之Lambda表达式
- JDK8新特性之Lambda表达式
- jdk8新特性 lambda表达式详解
- JDK8新特性之Lambda表达式
- Java8新特性之Lambda表达式
- java8新特性之lambda表达式(二)
- C#3.0语言新特性之Lambda表达式
- lambda表达式的应用例子和JavaSE 8特性
- 在AndroidStudio中设置某项目支持使用Java 8 新特性 ( eg:Lambda 表达式)
- c#3.0新特性使用lambda表达式创建表达式树
- Java 8新特性-3 Lambda 表达式
- Java8 新特性之一---------Lambda表达式和函数式接口
- 浅析C++11新特性的Lambda表达式