回调接口
package com.callBack;
import java.util.Map;
public interface IHandlerCallBack {
// 执行回调操作的方法
void execute(Map<String, String> msg);
}
回调实体类
package com.callBack;
import java.util.Map;
public class HandlerMsg {
private IHandlerCallBack callBack;
//回调方法设置
public void setCallBack(IHandlerCallBack callBack) {
this.callBack = callBack;
}
//执行
public void sendMsg(Map<String, String> msg) {
callBack.execute(msg);
}
}
测试代码
package com.callBack;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class CallMainTest {
private static HandlerMsg handlerMsg;
public static void main(String[] args) {
handlerMsg = new HandlerMsg();
handlerMsg.setCallBack(new IHandlerCallBack() {
@Override
public void execute(Map<String, String> msg) {
// 回调操作代码
System.out.println(msg.get("msg"));
}
});
// 限定数量的线程
ExecutorService singleThreadExecutor = Executors.newFixedThreadPool(2);
for (int i = 0; i < 10; i++) {
final int index = i;
singleThreadExecutor.execute(new Runnable() {
public void run() {
try {
Map<String, String> msg = new HashMap<>();
msg.put("msg", index + "线程");
handlerMsg.sendMsg(msg);
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
}
java创建自定义回调实列
最新推荐文章于 2022-06-13 14:33:45 发布