我的代码有什么问题?
在我这样做的主要方法中:
int [] test=new int[48];
test=etable(Right[]).clone();
我想要的是,'test' 数组与'etable' 方法的输出完全相同。
我的方法称为“etable”:
public static int [] etable(int [] right){
int [] blabla=new int[48];
...
return blabla[]
}
感谢您的意见
我的代码有什么问题?
这一行是编译错误:
test = etable(Right[]).clone();
如果right
(or Right
) 是一个变量(用 type 声明int[]
),那么你应该像这样编写方法调用:
test = etable(right).clone();
如果Right
是一个类型,那么这不是创建数组的正确语法。(并且从您编写该etable
方法的方式来看,您不应该将新数组传递给它。)
第二个问题是这个序列没有意义:
int test[] = new int[48];
test = etable(...).clone();
test
您正在分配一个由 48 个元素组成的数组……然后通过为变量分配不同的数组引用将其丢弃。
第三个问题是clone()
无论如何很可能是多余的。您的etable
方法正在分配一个新数组 (in blabla
) 并返回它。然后调用代码复制新数组。除非在某处etable
保存对blabla
数组的引用,否则复制步骤不会实现任何目标。
最后一个问题是,如果Right
真的是一个变量名,那么这是一个严重的 Java 风格违规。在 Java 中,变量名不应以大写字母开头。
使用例如Arrays.copy()
:
int[] tmp = etable(whatever);
int[] test = Arrays.copy(tmp, 0, tmp.length);
至于您的原始代码,例如:
test = ebtable(Right[]).clone();
不是合法的Java(Right
无论如何是什么?)。