好的,这是一个非常简单的猜测问题,我对此感到茫然......但是这让我头晕目眩。 这是来源:
import java.util.Arrays;
public class InputValues {
public int[] myarrayvar;
public InputValues(int[] myarraypass) {
---- help here
}
public void init() {
---help here
}
public int[] getmyarrayvar() {
return myarrayvar;
}
public void setmyarrayvar(int[] myarraypass) {
this.myarrayvar= mayarraypass;
}
}
我用
来调用它InputValues inputValues = new InputValues(myarraypass);
inputValues.init();
myarraypass的类型为int []。
就像我说过这应该是非常容易的......但是由于某种原因我不能让它工作....
答案 0 :(得分:1)
您可以尝试以下方法:
将实例变量访问权限从public
更改为private
。
在构造函数中,您可以使用以下行:
this.myarrayvar = myarraypass;
但请记住,如果myarraypass
在课程InputValues
之外修改,myarrayvar
也会受到影响。
如果您不希望发生此行为,则应按索引复制。
this.myarrayvar = new int[myarraypass.length];
for(int i=0; i<myarraypass.length;i++)
this.myarrayvar[i] = myarraypass[i];
OR
this.myarrayvar = (int[]) myarraypass.clone();
OR
this.myarrayvar = new int[myarraypass.length];
System.arraycopy(myarraypass, 0, this.myarrayvar, 0, myarraypass.length);
答案 1 :(得分:1)
public InputValues(int[] myarraypass) { this.myarrayvar = new int[myarraypass.length]; System.arraycopy(myarraypass, 0, this.myarrayvar, 0, myarraypass.length ); }