在研究 Collection
API 时,我们发现某些方法(add
、remove
、...)可能会抛出 java.lang.UnsupportedOperationException
如果 Collection 的当前实现不支持这些功能。
实际上,在 JDK 中是否有一个具体的 Collection
不支持这些方法?
非常感谢您的回答。
最佳答案
除了 Collections.unmodifiable*
返回的集合方法,还有一些有趣的情况,其中 UnsupportedOperationException
实际被抛出:
Map
的 Collection View , 通过entrySet()
访问,keySet()
和values()
可以删除但不添加元素,Arrays.asList
返回的 ListView 既不能添加也不能删除元素,- 另外,从
Collections.empty*
和Collections.singleton*
方法获得的对象也被标记为“不可变”,所以- 尽管 API 文档中没有明确说明 - 我想这些也会在尝试修改它们时引发异常。
关于java - 集合上的 UnsupportedOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2887590/