selectionKeys.clear()或remove抛异常java.lang.UnsupportedOperationException

Posted 落孤秋叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selectionKeys.clear()或remove抛异常java.lang.UnsupportedOperationException相关的知识,希望对你有一定的参考价值。


获取返回的所关注的事件SelectionKey集合
Set<SelectionKey> selectionKeys = selector.keys();

selectionKeys循环处理完事件后,需要进行对它删除。

清除调用selectionKeys.clear()时 抛出异常:

java.lang.UnsupportedOperationException
    at java.util.Collections$UnmodifiableCollection.clear(Collections.java:1074)

 

keys()返回是一个不可修改的集合。只有在channel注销之后才可以删除。非线程安全。

改用

Set<SelectionKey> selectionKeys = selector.selectedKeys();

 

以上是关于selectionKeys.clear()或remove抛异常java.lang.UnsupportedOperationException的主要内容,如果未能解决你的问题,请参考以下文章