我是Groovy的新手,尽管阅读了许多有关此的文章和问题,但我仍然不清楚发生了什么。到目前为止,据我了解,当您在Groovy中创建新数组时,底层类型是Java ArrayList。这意味着它应该可调整大小,您应该能够将其初始化为空,然后通过add方法动态添加元素,如下所示:
MyType[] list = [] list.add(new MyType(...))
编译,但是在运行时失败:方法的无签名:[LMyType; .add()适用于参数类型:(MyType)值:[MyType @ 383bfa16]
什么是正确的方法或正确的类型?
Groovy的方法是
def list = [] list << new MyType(...)
这将创建一个列表,并使用重载的leftShift运算符来附加项目
leftShift
有关许多示例,请参见Lists上的Groovy 文档。