在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
方法。