您的位置:首页 > 编程语言 > Java开发

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 组成一个字符串.这种形式非常的方便灵活. 称之为 ‘行为传递’
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息