当我尝试使用下标运算符编辑groovy.lang.Range时java.lang.UnsupportedOperationException
,对于java.util.List却出现错误。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。在文档中,您可以看到它继承了add方法,java.util.AbstractList
并从该方法引发UnsupportedOperation异常。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句