Groovy强制转换列表<list <integer>&gt; into int [] [] </list <integer>

时间:2014-02-26 02:16:05

标签: arraylist multidimensional-array groovy casting

我正在将Groovy嵌入到我的游戏引擎中,并且我从我的脚本中调用这个Groovy方法来获取一些信息

def getSameTiles() {
    final int cx = 0;
    final int cy = 6;

    return  [
                [
                    [cx + 0, cy + 0],
                    [cx + 1, cy + 0],
                    [cx + 2, cy + 0],
                    [cx + 0, cy + 1],
                    [cx + 1, cy + 1],
                    [cx + 2, cy + 1],
                    [cx + 0, cy + 2],
                    [cx + 1, cy + 2],
                    [cx + 2, cy + 2],
                    [cx + 3, cy + 1],
                    [cx + 4, cy + 1],
                    [cx + 3, cy + 2],
                    [cx + 4, cy + 2],
                ],
            ];
}

我可以as List<Integer>[]但是有一种优雅的方法可以将它变成int[][]吗?

1 个答案:

答案 0 :(得分:2)

    矩阵中的每个条目都需要
  • *.toArray()Object[]
  • 最后将回报推断为矩阵Object[][]

如下图所示

def getSameTiles() {
    final int cx = 0
    final int cy = 6

    return  [
                [
                    [cx + 0, cy + 0],
                    [cx + 1, cy + 0],
                    [cx + 2, cy + 0],
                    [cx + 0, cy + 1],
                    [cx + 1, cy + 1],
                    [cx + 2, cy + 1],
                    [cx + 0, cy + 2],
                    [cx + 1, cy + 2],
                    [cx + 2, cy + 2],
                    [cx + 3, cy + 1],
                    [cx + 4, cy + 1],
                    [cx + 3, cy + 2],
                    [cx + 4, cy + 2],
                ]*.toArray()
            ] as Object[][]
}