当返回复制数组时,Java "类型不匹配:不能从int[][]转换为int"。

问题描述 投票:0回答:1

我想做一个返回复制数组的函数,但我得到这个错误。

"Type mismatch: cannot convert from int[][] to int" on line 10,

我不知道哪里出了问题。

public class Usun {

    public int newTable(int[] table[]) {
        int[] newTable[];
        for (int i = 0; i <= table.length; i++)  {
            newTable[i] = table[i];  
        }         
        return newTable;
    }
}
java arrays variables
1个回答
0
投票

你想返回一个int的数组(int[])而不是一个int,同样,对于声明一个int数组,你可以使用 int[] table 而不是 int[] table[]

另外,正如 @小票在他的评论中提到的,你必须初始化你的数组,否则你会得到的是 NullPointerException 因为你会尝试向一个未初始化的数组添加元素,这将导致编译时的错误。

public class usun {
    public int[] newTable(int[] table) {

       int[] newTable = new int[table.length];
       for (int i = 0; i < table.length; i++)  {
          newTable[i] = table[i];  
       }         
       return newTable;
   }
}

-1
投票

newTable 是一个二维数组。你尝试在方法中使用返回类型为 int.

将函数的返回类型改为 int[][]. 还有: newTable 在你的代码中没有正确初始化。

此外,您可以使用内置的方法,如 Arrays#copyOf 等进行数组深度复制,因为你不用自己写。

© www.soinside.com 2019 - 2024. All rights reserved.