在Java中,回调机制是一种常见的方法,用于在异步操作完成后执行特定的代码。这里是一个简单的示例,说明如何使用回调机制进行异步调用:
- 首先,定义一个回调接口:
public interface AsyncCallback{ void onSuccess(T result); void onError(Exception e); }
- 创建一个异步类,该类将执行异步操作并在操作完成时调用回调方法:
public class AsyncTask{ private AsyncCallback callback; public AsyncTask(AsyncCallback callback) { this.callback = callback; } public void execute(Callable 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) { AsyncTaskasyncTask = new AsyncTask<>(new AsyncCallback () { @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
方法。