繁体   English   中英

无法将 1d 数组传递给方法,因为有 2d 数组参数

[英]Can't pass 1d array into a method because there is a 2d array parameter

我无法将一维数组传递给该方法,因为有一个二维数组参数。 我无法删除 2d 数组参数,因为我的 2048 游戏板在该 2d 数组板主题上运行。 有解决方法吗? 我希望slideUptemp上工作,并且仍然保留我的 2d 数组参数

public void slideUp(int[][] board) {
    for (int column = 0; column < board[0].length; column++) {
        int[] temp = getCol(board, column);
        slideUp(temp);
        for (int i = 0; i < board[0].length; i++) {
            board[i][column] = temp[i];
        }
    }
}

错误代码:不兼容的类型:int[] 无法转换为 int[][] slideUp(temp);

作为一种解决方法,您可以创建一个接受int[]的新方法,然后将一维数组表示为单行的二维数组,并调用旧方法,如下所示:

public void callSlideUp(int[] row) {
    // a 2d array of a single row
    slideUp(new int[][]{row});
}

public void slideUp(int[][] board) { ... }

您可以通过创建另一个具有相同名称但使用一维数组作为参数的方法来重载该方法。

public void slideUp(int[] board) {
    //your code here
}

您必须更改它以处理一维数组。

 board[i][column]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM