@FunctionalInterface
interface FileHandle {
void doSome(String fileContent);
}
public class LamdaTest {
//可以理解为一种匿名函数的替代
//可选参数类型
//符合lamda表达式的函数时接口:只有一个抽象方法
//函数式接口注解@FunctionInterface 非必要
//函数式接口的抽象方法签名:函数描述符
public static void handleFileContent(String url,FileHandle fileHandle) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new FileReader(url));
String line;
StringBuilder stringBuilder = new StringBuilder();
while ((line = bufferedReader.readLine())!= null) {
stringBuilder.append(line + '\n');
}
fileHandle.doSome(stringBuilder.toString());
}
public static void main(String[] args) throws IOException {
LamdaTest.handleFileContent("D:\\hello.txt",str -> System.out.println(str.toUpperCase()));
}
}
- util下function中有很多jdk自带的FunctionInterface,进一步泛化,可以选择使用
方法引用
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。