数组克隆不起作用

UDE*_*ent 0 java eclipse arrays clone

我的代码出了什么问题?

在主要方法中我这样做:

int [] test=new int[48];

test=etable(Right[]).clone();
Run Code Online (Sandbox Code Playgroud)

我想要的是,'test'数组与'etable'方法的输出完全相同.

我的方法称为'etable':

public static int [] etable(int [] right){
int [] blabla=new int[48];
...
return blabla[]
}
Run Code Online (Sandbox Code Playgroud)

感谢您的意见

Ste*_*n C 5

我的代码出了什么问题?

这一行是编译错误:

    test = etable(Right[]).clone();
Run Code Online (Sandbox Code Playgroud)

如果right(或Right)是一个变量(用类型声明int[]),那么你应该像这样编写方法调用:

    test = etable(right).clone();
Run Code Online (Sandbox Code Playgroud)

如果Right是类型,那么这不是创建数组的正确语法.(从你如何编写etable方法来判断,你不应该将它传递给新数组.)

第二个问题是这个序列没有意义:

    int test[] = new int[48];
    test = etable(...).clone();
Run Code Online (Sandbox Code Playgroud)

您正在分配一个包含48个元素的数组...然后通过为test变量分配不同的数组引用将其丢弃.

第三个问题是,clone()无论如何,这很可能是多余的.您的etable方法是分配一个新数组(in blabla)并返回它.然后调用代码复制新数组.除非在某处etable保存对blabla数组的引用,否则复制步骤无法实现任何目的.

最后一个问题是,如果Right确实是一个变量名,那么这是一个严重的Java样式违规.在Java中,变量名称不应以大写字母开头.