写NIO程序的时候遇到了SelectionKey.attachment()为空的问题,最后解决了,这里简单介绍下,希望能对其他人有帮助:
SelectionKey key = socketChannel.register(selector, SelectionKey.OP_CONNECT);
key.attach(group);
...
client.register(selector, SelectionKey.OP_READ);
if(key.isReadable()){
ChannelWorkerGroup group = (ChannelWorkerGroup) key.attachment();
的时候却报group为空。
原因是第二次register为OP_READ的时候没有带上第三个参数,改成这样就好了:
client.register(selector, SelectionKey.OP_READ, group);
if(key.isReadable()){
ChannelWorkerGroup group = (ChannelWorkerGroup) key.attachment();

本文详细介绍了在使用NIO程序时遇到的SelectionKey.attachment()为空的问题,并提供了解决方案,旨在帮助其他开发者避免类似困扰。

428

被折叠的 条评论
为什么被折叠?



