不兼容的类型:int[][] 不能转换为 int

时间:2021-08-01 11:49:14

标签: java

为什么我会收到这个错误??我正在尝试顺时针旋转 90 度,并想找到转置,然后反转每一行。

static int transpose(int [][]arr,int n,int m){
        int [][]transposeArr = new int[n][m];
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                transposeArr[i][j] = arr[j][i];
            }
        }
        return transposeArr;
    }

2 个答案:

答案 0 :(得分:1)

因为你的方法返回一个 int[][] 因为你写了 return transposeArr;,而 transposeArr 是一个变量,在这个方法的第一行声明,类型为 int[][],但是你的方法被声明为只返回一个 int,因为你是这样定义的(static int transpose... - 第一个 int 是返回类型)。

int[][] 不是 int

这就像你有一个柠檬水摊(你“声明”你归还“柠檬水”),有人走过来,要一杯饮料,你递给他们一杯咖啡。编译器不会让你这样做,你必须先更新你的摊位的广告。

很可能你打算写static int[][] transpose(int[][] arr, int n, int m) {.... }

答案 1 :(得分:1)

static int transpose(int [][]arr,int n,int m)

考虑这一行,这里您将返回类型指定为 int,因此该函数期望返回一个 int 但您返回的是 transposeArr 类型为 int[][]

所以为了返回transposeArr,你可以把行改成

static int[][] transpose(int [][]arr,int n,int m)