Java 设置传递给函数的数组变量
好的,这是一个猜测,一个非常简单的问题,我有一个关于。。。。然而,它正在杀死我的头。 资料来源如下:Java 设置传递给函数的数组变量,java,arrays,function,setter,Java,Arrays,Function,Setter,好的,这是一个猜测,一个非常简单的问题,我有一个关于。。。。然而,它正在杀死我的头。 资料来源如下: import java.util.Arrays; public class InputValues { public int[] myarrayvar; public InputValues(int[] myarraypass) { ---- help here } public void init() { ---he
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[]
就像我说的,这应该很容易。。。。但由于某种原因,我无法让它工作……您可以尝试以下方法:
public
更改为private
InputValues
之外修改了myarraypass
,myarrayvar
也会受到影响
如果您不希望发生这种行为,那么应该逐个索引复制索引
this.myarrayvar = new int[myarraypass.length];
for(int i=0; i<myarraypass.length;i++)
this.myarrayvar[i] = myarraypass[i];
或
我做了1。并在setter中插入一个print cmd。。。但这绝不是印刷。。所以我猜它从来没有被调用过,我以后使用数组进行计算,结果返回一个NullPointerException。由于某些原因,未设置var。使其正常工作。。我把震源放在了brakets之外。。。现在我做对了,效果很好…-)感谢你在什么意义上不能让它工作?你遇到了什么问题?
this.myarrayvar = (int[]) myarraypass.clone();
this.myarrayvar = new int[myarraypass.length];
System.arraycopy(myarraypass, 0, this.myarrayvar, 0, myarraypass.length);
public InputValues(int[] myarraypass) {
this.myarrayvar = new int[myarraypass.length];
System.arraycopy(myarraypass, 0, this.myarrayvar, 0, myarraypass.length );
}