標籤:
回調就是調用方持有被呼叫者的一個引用,而調用方介面的實作類別作為被呼叫者的參數,被呼叫者返回來調用調用方的方法
介面CallBack
public interface CallBack {
/**回調方法*/
public void execute(Object ... objects);
}
調用方Local
public class Local implements CallBack ,Runnable{
private Remote remote;//被呼叫者作為調用方的一個引用
private String msg;
public Local(Remote remote, String msg) {
super();
this.remote = remote;
this.msg = msg;
}
@Override
public void execute(Object... objects) {
//返回的訊息
System.out.println(objects[0]);
System.out.println(Thread.currentThread().getName());
Thread.interrupted();
}
public void sendMessage() {
System.out.println(Thread.currentThread().getName());
Thread thread = new Thread(this);
thread.start();
System.out.println("發送訊息");
}
public static void main(String[] args)
{
Local local = new Local(new Remote(),"Hello");
local.sendMessage();
}
@Override
public void run() {
remote.executeMessage(msg, this);
}
}
被呼叫者Remote
public class Remote {
public void executeMessage(String msg,CallBack callBack){
System.out.println(msg);
System.out.println("接收到了Local傳過來的命令");
callBack.execute(new String[]{"Hello Local"});
}
}
Java回呼函數