我想做一个返回复制数组的函数,但我得到这个错误。
"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;
}
}
你想返回一个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;
}
}
newTable
是一个二维数组。你尝试在方法中使用返回类型为 int
.
将函数的返回类型改为 int[][]
. 还有: newTable
在你的代码中没有正确初始化。
此外,您可以使用内置的方法,如 Arrays#copyOf
等进行数组深度复制,因为你不用自己写。