gpt4 book ai didi

collections - Groovy 有集合的 size 属性吗?

转载 作者:行者123 更新时间:2023-12-03 16:44:25 25 4
gpt4 key购买 nike

我写了一段代码,在其中检查 ArrayList 的大小,例如:

[1,2,3].size

所有这些都在 Groovy Console 和 Grails 嵌入式 Tomcat 服务器上运行良好。但是一旦我将此代码部署到 Websphere Application Server,我就会收到一个异常说明
Exception evaluating property 'size' for java.util.ArrayList, Reason: groovy.lang.MissingPropertyException: No such property: size for class: java.lang.Integer.

经过一段时间的调试、测试和大量 WTF,我意识到方法调用中缺少括号。属性符号不应该工作,因为没有方法 getSize()对于 Collection (很简单 size() ),这一切都是有道理的。

让我不解的是 为什么someCollection.size在 Groovy 控制台和 Grails 上工作?

Grails 和 Groovy 控制台版本是 2.3.6

最佳答案

ArrayList在(至少)Sun JDK 1.7u67 和 OpenJDK 1.6 中持有 private int size ,这是 groovy 可以访问的。如果您的其他环境使用另一个 JDK,则此变量可能不存在并且 groovy 将回退到 [1,2,3]*.getSize() 的解释。 ,然后失败。

关于collections - Groovy 有集合的 size 属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26532434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com