Java实现回调(参考代码)
以下实现的属于同步回调,若想实现异步回调只需要在"东家"处开一个线程就可以了。
一、 具体干活儿的
/**
* 干活儿的
*
* @author Chief
* @date 2019-08-19 14:31
* @Email MyEvery7655@gmail.com
*/
public class T1 {
/**
* 具体干活儿的方式
*
* @param str 工作的内容
* @param t2 回调的对象,必须实现我干活儿的要求实现的标准 {@link T}
*/
public static <H extends T> void adds(String str, H t2) {
t2.addStr(str);
}
}
二、 干活儿的规定的回调方式
/**
* 干活儿滴定义的统一回调接口
*
* @author Chief
* @date 2019-08-19 14:31
* @Email MyEvery7655@gmail.com
*/
public interface T {
/**
* 统一的回调处理方法
*
* @param str 回调返回的消息
*/
void addStr(String str);
}
三、东家调用干活儿的开始干活
/**
* @author Chief
* @date 2019-08-19 14:32
* @Email MyEvery7655@gmail.com
*/
public class T2 implements T {
public static void main(String[] args) {
new T2().build();
}
/**
* 实现的回调方法通知自己干活儿的把活儿干完了,并且返回结果。
*
* @param str 回调时传进的消息
*/
public void addStr(String str) {
System.out.println(str + "回调了T2的方法");
}
private void build() {
T1.adds("T1", this);
}
}