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