UnsupportedOperationException 出现于操作不被集合支持时,如修改不可变列表;常见于 Arrays.asList() 或 Collections.unmodifiableList() 返回的只读视图,因其结构不可变;避免方式包括使用 ArrayList 包装、区分可变与只读集合,并通过文档或命名提示;安全处理可通过 try-catch 捕获或调用前判断类型是否支持操作。
当Java程序调用一个不支持的操作时,会抛出 UnsupportedOperationException。这个异常通常出现在集合类中,比如试图修改一个不可变集合,或使用不支持添加/删除操作的列表视图。正确理解和处理这个异常,有助于避免运行时错误。
这个异常表示请求的操作在当前环境下不被支持。常见场景包括:
这些集合返回的只是原始数据的视图,并不允许结构性修改。
关键在于清楚所使用的集合是否支持修改操作。可以采取以下措施:
在不确定集合是否支持某操作时,可提前判断或使用 try-catch 进行防护:
;基本上就这些。理解集合的可变性来源,就能有效规避这个问题。遇到异常先查文档,再看集合是如何创建的,通常很快就能定位原因。