自己写了一个例子演示JAVA中对耗时操作的回调通知,要求客户程序员实现抽象类Test中的回调接口onCompletion(),代码如下:
interface RequestListener{
public void request(String action);
public void onCompletion(String response);
}
abstract class Test implements RequestListener{
@Override
public void request(final String action) {
System.out.println("received request-->"+action);
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
onCompletion("requested work done=" + action);
}
}).start();
System.out.println("request return...");
}
}
public class AnyTest extends Test{
@Override
public void onCompletion(String response) {
System.out.println(response);
}
public void ownWork(){
System.out.println("My own work...");
}
public static void main(String[] args){
AnyTest at = new AnyTest();
at.request("WORK1");
at.ownWork();
}
}
输出:
received request-->WORK1
request return...
My own work...
requested work done=WORK1