public void setData(double[] d) {
if (d == null) {
data = new double[0];
} else {
data = new double[d.length];
for (int i = 0; i < d.length; i++)
data[i] = d[i];
}
}
我的代码中的这个方法用于设置数组的数据。我还需要编写一个名为reset()的方法,该方法将给定数组更改为具有空值。此外,我们正在练习本实验中的重载。 setData()有四个版本(double,int,float,long)。由于Stat类在内部使用double数组来存储值,我是否只需要生成一个double类型的reset()方法?(我想我只需要一个......)最后,请给我一些提示为了解决这个重置业务,因为我尝试过的所有事情都失败了,并且通常包含诸如此类的陈述 “setData(double [] null)”返回错误。
答案 0 :(得分:1)
null
。
如果您总是希望能够更改数组指向的内容,那么只需要一个返回数组的函数(而不是void
),并将返回的值分配给感兴趣的数组。 / p>
答案 1 :(得分:0)
因为java是按值传递的,所以不能将作为参数传递的变量重新分配给方法,并期望看到该变化反映在外部。
你可以做的是将数组放在某种类似的包装类中:
class ArrayReference<T> {
T[] array; // T would be either Double, or Long, or Integer, or whatever
}
然后:
void setData(ArrayReference<Double> myReference) {
myReference.array = null;
}
答案 2 :(得分:0)
我不确定我是否理解你的问题,但这是你想要的吗?
public class Stat {
private double[] data;
public void reset() {
data = null;
}
public void setData(double[] d) {
data = (d == null) ? new double[0] : Arrays.copyOf(d, d.length);
}
}