java - 为什么 Range 会抛出 UnsupportedOperationException?

标签 java list collections groovy range

当我尝试使用下标运算符编辑 groovy.lang.Range 时,对于 java.util,我遇到了错误 java.lang.UnsupportedOperationException。列表一切顺利。 Groovy Range API 中没有任何迹象该集合是不可变的。您知道 Range\我的代码有什么问题吗?

代码如下:

def list = "a".."c"
assert list instanceof java.util.List
assert list.size() == 3
list[2] = "d"

控制台输出:

Exception in thread "main" java.lang.UnsupportedOperationException
    at java.util.AbstractList.set(AbstractList.java:132)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.putAt(DefaultGroovyMethods.java:6607) <6 internal calls>
    at Hello.run(Hello.groovy:4) <15 internal calls>
    at Hello.main(Hello.groovy) <5 internal calls>

更新:

Groovy 版本:1.8.6 JVM:1.6.0_45 供应商:Sun Microsystems Inc. 操作系统:Linux

最佳答案

看起来 groovy 使用 ObjectRange .在文档中,您可以看到它从 java.util.AbstractList 继承了 add 方法,该方法会抛出 UnsupportedOperation Exception。

关于java - 为什么 Range 会抛出 UnsupportedOperationException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24889972/

相关文章:

java - 在接收器类中使用上下文

c# - 多键字典,其中只需要 1 个键来检索对象

java - jsonschema2pojo 还生成自定义注释器的对象

java - 使用 iTextPdf 将 HTML 转换为 PDF : java. lang.NoSuchMethodError

c# - 无法将 .List<string> 转换为字符串

jquery - CSS 样式的可编辑列表?

python - 根据每个元组内的值对元组列表进行分区

java - Java Set 中对象的可变字段

java - java中的内存高效集合

java - E4 RCP 应用程序在双击事件时不响应