从定义接口开始,用简单的例子展示回调的用法,用java实现
时间: 2024-10-23 20:13:17 浏览: 17
回调是一种常见的编程模式,在函数或方法完成某项操作后,会将另一个函数作为参数传递给它,并在完成后调用这个函数。这种机制常用于异步编程,比如处理网络请求、文件读取等需要等待结果的情况。
接口是一种在Java中描述功能的规范,定义了一组方法。下面是一个简单的例子,假设我们有一个接口`FileProcessor`,它定义了一个处理文件的方法:
```java
// 定义接口 FileProcessor
public interface FileProcessor {
void processFile(File file);
}
```
现在,我们可以创建一个实现了这个接口的类`CSVFileProcessor`,它在处理CSV文件后调用回调:
```java
public class CSVFileProcessor implements FileProcessor {
private Action<File> action; // 回调接口
public CSVFileProcessor(Action<File> action) {
this.action = action;
}
@Override
public void processFile(File file) {
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
// 这里是处理CSV文件的具体逻辑
String line;
while ((line = br.readLine()) != null) {
// ...
}
// 当处理完文件后,调用回调
action.execute(file); // 假设action接口有一个execute方法接收file
} catch (IOException e) {
e.printStackTrace();
}
}
// 假设Action接口
public interface Action<T> {
void execute(T data);
}
}
```
在这个场景中,`Action`就是一个回调接口,当你创建`CSVFileProcessor`实例并传入一个实现了`Action<File>`的回调对象时,文件处理完毕后,就会调用这个回调对象的`execute()`方法。
阅读全文