服务治理 Java学习笔记

Java 回调 callback

2017-01-19  本文已影响77人  专职跑龙套

示例如下:

public class Callback_Test {
    public static void main(String[] args) {
        Caller caller = new Caller(new ToBeCalled());
        caller.askQuesion();
    }
}

interface Callback {
    public void callback(Object obj);
}

class Caller implements Callback {
    private ToBeCalled tb;

    public Caller(ToBeCalled tb) {
        this.tb = tb;
    }

    // 异步回调
    public void askQuesion() {
        new Thread() {
            public void run() {
                System.out.println("提出问题");
                tb.answer(Caller.this);
            }
        }.start();
    }

    public void callback(Object obj) {
        System.out.println("得到答案:" + obj);
    }
}

class ToBeCalled {
    // 计算过程
    public void answer(Callback cb) {
        System.out.println("计算结果");
        int result = 10;

        cb.callback(result);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读