无法将一维数组传递给方法,因为存在二维数组参数

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

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

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];
        }
    }
}

Error code: incompatible types: int[] cannot be converted to int[][] slideUp(temp);

作为变通方法,您可以创建一个接受 int[] 的新方法,然后将 1d 数组 表示为 2d 数组[=16] =] 一行,然后调用旧方法,如下所示:

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]