我是Groovy的新手,尽管阅读了很多文章和问题,我仍然不清楚发生了什么.从我到目前为止所理解的,当您在Groovy中创建一个新数组时,底层类型是Java ArrayList.这意味着它应该是可调整大小的,您应该能够将其初始化为空,然后通过add方法动态添加元素,如下所示:
MyType[] list = []
list.add(new MyType(...))
Run Code Online (Sandbox Code Playgroud)
这会编译,但是它在运行时失败:没有方法签名:[LMyType; .add()适用于参数类型:( MyType)值:[MyType @ 383bfa16]
这样做的正确方法或适当类型是什么?
我正在寻找最简洁的语法来初始化Groovy中的对象数组.鉴于:
class Program {
String id = ""
String title = ""
String genre = ""
}
Run Code Online (Sandbox Code Playgroud)
我目前正在这样做:
Program[] programs = [
new Program([id:"prog1", title:"CSI", genre:"Drama"]),
new Program([id:"prog2", title:"NCIS", genre:"Drama"]),
new Program([id:"prog3", title:"Criminal Minds", genre:"Crime drama"]),
] as Program[]
Run Code Online (Sandbox Code Playgroud)
我似乎记得在Java中有一个更紧凑的语法,可能不需要使用new关键字.什么是最紧凑的Groovy语法来实现这一目标?