Groovy 初始化数组很笨拙

Groovy 初始化数组很笨拙,groovy,Groovy,我现在有密码 static Collection<Object[]> defineObjects() { def myObjects = new Object[2][4] myObjects[0] = [object11,object12,object13,object14] myObjects[1] = [object21,object22,object23,object24] return myObjects; } 静态集合定义对象(){

我现在有密码

static  Collection<Object[]> defineObjects() {
    def myObjects = new Object[2][4]

    myObjects[0] = [object11,object12,object13,object14]
    myObjects[1] = [object21,object22,object23,object24]

    return myObjects;
}
静态集合定义对象(){
def myObjects=新对象[2][4]
MyObject[0]=[object11、object12、object13、object14]
MyObject[1]=[object21、object22、object23、object24]
返回对象;
}
我不得不定义数组的大小,而不仅仅是初始化它,这很烦人


有没有更优雅的方法来编写此函数?

您不必定义数组的大小。考虑下面两个例子:

import groovy.transform.CompileStatic
import groovy.transform.TypeChecked

@CompileStatic
@TypeChecked
class Objects {

  static void main(String[] args) {
    println defineObjects()
    println defineObjects2()
  }

  static Collection<Object[]> defineObjects() {
    def myObjects = [
      [new Object(), new Object(), new Object()] as Object[],
      [new Object(), new Object(), new Object()] as Object[]
    ]
    return myObjects
  }

  static Object[][] defineObjects2() {
    def myObjects = [
      [new Object(), new Object(), new Object()] as Object[],
      [new Object(), new Object(), new Object()] as Object[]
    ] as Object[][]
    return myObjects
  }
}
[[java.lang.Object@4667ae56, java.lang.Object@77cd7a0, java.lang.Object@204f30ec], [java.lang.Object@e25b2fe, java.lang.Object@754ba872, java.lang.Object@146ba0ac]]
[[java.lang.Object@4dfa3a9d, java.lang.Object@6eebc39e, java.lang.Object@464bee09], [java.lang.Object@f6c48ac, java.lang.Object@13deb50e, java.lang.Object@239963d8]]