里面onSelfClosed方法里的 clientHandlerList.remove(handler)的方法什么时候会被调用?
来源:5-4 数据发送与接收并行-1
Lymanhan
2018-10-30
ClientHandler clientHandler = new ClientHandler(client,
new ClientHandler.CloseNotify() {
@Override
public void onSelfClosed(ClientHandler handler) {
clientHandlerList.remove(handler);
}
});
// 读取数据并打印
clientHandler.readToPrint();
clientHandlerList.add(clientHandler);
里面onSelfClosed方法里的 clientHandlerList.remove(handler)的方法什么时候会被调用?
写回答
2回答
-
Qiujuer
2018-10-31
在当前这个链接对应的 ClientHandler 被触发了关闭的操作的时候回调。
其实对于代码什么时候调用很简单,进入对应的类“ClientHandler”然后看一下里边的这个CloseNotify在什么时候被触发回调,然后再反向去推导什么时候会调用ClientHandler内部对应的方法就能知道答案了。
谢谢你对课程的支持哈。
00 -
Lymanhan
提问者
2018-10-30
我好像想明白了,这个地方是创建了一个ClientHandler的对象名字是clientHandler,然后如果这个对象调用到里面的 exitBySelf() }这个方法,他就会调用 clientHandlerList.remove(handler);这个方法?可以这样理解吗
022018-11-01
相似问题