在Java中,回调机制是一种常见的方法,用于在异步操作完成后执行特定的代码。这里是一个简单的示例,说明如何使用回调机制进行异步调用:
public interface AsyncCallback<T> {
void onSuccess(T result);
void onError(Exception e);
}
public class AsyncTask<T> {
private AsyncCallback<T> callback;
public AsyncTask(AsyncCallback<T> callback) {
this.callback = callback;
}
public void execute(Callable<T> callable) {
new Thread(() -> {
try {
T result = callable.call();
callback.onSuccess(result);
} catch (Exception e) {
callback.onError(e);
}
}).start();
}
}
AsyncTask
类执行异步操作:public class Main {
public static void main(String[] args) {
AsyncTask<String> asyncTask = new AsyncTask<>(new AsyncCallback<String>() {
@Override
public void onSuccess(String result) {
System.out.println("异步操作成功,结果: " + result);
}
@Override
public void onError(Exception e) {
System.out.println("异步操作失败,原因: " + e.getMessage());
}
});
asyncTask.execute(() -> {
// 模拟一个耗时操作,例如从数据库或网络获取数据
Thread.sleep(2000);
return "异步操作返回的数据";
});
}
}
在这个示例中,我们创建了一个AsyncTask
类,它接受一个回调接口作为参数。当我们调用execute
方法时,它会创建一个新的线程来执行传入的Callable
对象。当异步操作成功完成时,我们调用onSuccess
方法;当操作失败时,我们调用onError
方法。