java中使用Callback完整实现一个demo
时间: 2024-05-05 21:16:45 浏览: 12
以下是一个使用Callback实现异步回调的Java示例代码:
```java
public interface Callback {
void onSuccess(String result);
void onFailure(String error);
}
public class MyTask {
public void doTask(final Callback callback) {
new Thread(new Runnable() {
@Override
public void run() {
try {
// 模拟耗时操作
Thread.sleep(3000);
// 返回成功结果
callback.onSuccess("Task completed successfully.");
} catch (InterruptedException e) {
// 返回错误信息
callback.onFailure("Task interrupted with error: " + e.getMessage());
}
}
}).start();
}
}
public class Main {
public static void main(String[] args) {
MyTask task = new MyTask();
task.doTask(new Callback() {
@Override
public void onSuccess(String result) {
System.out.println(result);
}
@Override
public void onFailure(String error) {
System.out.println(error);
}
});
}
}
```
在这个示例中,我们定义了一个Callback接口,其中包含两个方法onSuccess和onFailure。MyTask类中的doTask方法接受一个Callback参数,表示异步任务完成后的回调函数。在doTask方法中,我们创建了一个新的线程来执行耗时操作,并在操作完成后调用Callback的onSuccess方法或onFailure方法,根据操作的结果进行相应的回调。在Main类中,我们创建了一个MyTask对象,并调用doTask方法,同时传入一个实现了Callback接口的匿名内部类作为回调函数。当MyTask的耗时操作完成后,会自动调用回调函数中的相应方法,从而达到异步回调的效果。