温馨提示×

java异步调用 怎样使用回调机制

小樊
84
2024-11-24 00:15:37
栏目: 编程语言

在Java中,回调机制是一种常见的方法,用于在异步操作完成后执行特定的代码。这里是一个简单的示例,说明如何使用回调机制进行异步调用:

  1. 首先,定义一个回调接口:
public interface AsyncCallback<T> {
    void onSuccess(T result);
    void onError(Exception e);
}
  1. 创建一个异步类,该类将执行异步操作并在操作完成时调用回调方法:
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();
    }
}
  1. 使用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方法。

0