この記事では、Java コールバック メカニズムの例の詳細な説明に関する関連情報を主に紹介します。必要な方は参照してください。コールバック メソッドとは何だろうと思いました。それでネットで調べたり調べたりしましたが、いろいろ調べてもよく分かりませんでしたが、いわゆるコールバックというもので、クラスAがクラスBのメソッドCを呼び出し、その後クラスBを呼び出すという意味です。このメソッド D は、こう見ると少しめまいを感じるかもしれません。実は、私も最初は理解できませんでした。より古典的なコールバック メソッドについて他の人が言ったことを読みました:
Class
A は
クラス B にはメソッド f(そのパラメーターはコールバック CallBack コールバック) があります ——バックグラウンド 3
A の objecta は B のメソッド f (CallBack コールバック) を呼び出します ——クラス Aクラス B の特定のメソッド C を呼び出します
次に、 b は f に含めることができます (CallBack コールバック) メソッドで A を呼び出すメソッド - クラス B はクラス A の特定のメソッド D を呼び出します
/** * 这是一个回调接口 * @author xiaanming * */ public interface CallBack { /** * 这个是小李知道答案时要调用的函数告诉小王,也就是回调函数 * @param result 是答案 */ public void solve(String result); }
onClick
() メソッド
Android
View のクリック メソッド onclick() を分析しましょう。このメソッドは、ユーザーが View をクリックしたときに実行されることがわかります。例/** * 这个是小王 * @author xiaanming * 实现了一个回调接口CallBack,相当于----->背景一 */ public class Wang implements CallBack { /** * 小李对象的引用 * 相当于----->背景二 */ private Li li; /** * 小王的构造方法,持有小李的引用 * @param li */ public Wang(Li li){ this.li = li; } /** * 小王通过这个方法去问小李的问题 * @param question 就是小王要问的问题,1 + 1 = ? */ public void askQuestion(final String question){ //这里用一个线程就是异步, new Thread(new Runnable() { @Override public void run() { /** * 小王调用小李中的方法,在这里注册回调接口 * 这就相当于A类调用B的方法C */ li.executeMessage(Wang.this, question); } }).start(); //小网问完问题挂掉电话就去干其他的事情了,诳街去了 play(); } public void play(){ System.out.println("我要逛街去了"); } /** * 小李知道答案后调用此方法告诉小王,就是所谓的小王的回调方法 */ @Override public void solve(String result) { System.out.println("小李告诉小王的答案是--->" + result); } }
/** * 这个就是小李啦 * @author xiaanming * */ public class Li { /** * 相当于B类有参数为CallBack callBack的f()---->背景三 * @param callBack * @param question 小王问的问题 */ public void executeMessage(CallBack callBack, String question){ System.out.println("小王问的问题--->" + question); //模拟小李办自己的事情需要很长时间 for(int i=0; i<10000;i++){ } /** * 小李办完自己的事情之后想到了答案是2 */ String result = "答案是2"; /** * 于是就打电话告诉小王,调用小王中的方法 * 这就相当于B类反过来调用A的方法D */ callBack.solve(result); } }
1.
Java 無料ビデオチュートリアル
2.
Alibaba Java 開発マニュアルGeek Academy Java ビデオチュートリアル以上がコールバック機構の詳細なコード説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。