当我尝试使用下标运算符编辑 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/