Java 爪哇语;类型不匹配:无法从int[]]转换为int";返回复制的数组时
我想创建一个返回复制数组的函数,但出现以下错误: 我不知道怎么了Java 爪哇语;类型不匹配:无法从int[]]转换为int";返回复制的数组时,java,arrays,variables,Java,Arrays,Variables,我想创建一个返回复制数组的函数,但出现以下错误: 我不知道怎么了 公共类uson{ 公共int新表(int[]表[]){ int[]新表[]; 对于(int i=0;i您希望返回一个int数组(int[])而不是int,同样对于声明一个int数组,您使用int[]table而不是int[]table[] 另外,正如@small_ticket在他的评论中提到的,您必须初始化数组,否则您将得到NullPointerException,因为您将尝试向未初始化的数组添加元素,这将导致编译时错误 publ
公共类uson{
公共int新表(int[]表[]){
int[]新表[];
对于(int i=0;i您希望返回一个int数组(int[]
)而不是int,同样对于声明一个int数组,您使用int[]table
而不是int[]table[]
另外,正如@small_ticket在他的评论中提到的,您必须初始化数组,否则您将得到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;
}
}
公共类uson{
公共int[]新表(int[]表){
int[]newTable=newint[table.length];
对于(int i=0;i
newTable
是一个二维数组。您可以尝试在方法中返回此数组,返回类型为int
将函数的返回类型更改为int[][]
。此外,newTable
在代码中没有正确初始化
此外,您可以使用内置方法(如array#copyOf
等)进行数组深度复制,因为您不必自己编写它们。您必须初始化新表另外,数组不是null
。它是未初始化的。如果您使用null
访问它,它将给出一个NPE,正如您所说的,但在这种情况下在这种情况下,它甚至不会编译,因为这是一个编译错误,而不是运行时错误。这是什么?int[]table[]
请编写int[]表
,这更常见。顺便说一句。你可以调用数组进行克隆,这在这里很方便。最初的要求是我想生成返回复制数组的函数
。所以你的两个要点都没有回答这个问题。@Aserre这是错误的。数组#copyOf
正是这样做的。还有我的第1点。解释了怎么做在那之后,除了我的附加注释之外,我还修改了他的代码。因此,我回答了完整的问题并提供了附加信息。编辑:我修改了布局,因此您可以看到相关的要点,这些要点明确地回答了问题。
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;
}
}