我正在使用我正在制作的方法出现一些错误,但我不知道它意味着什么或如何修复它。
错误说: DataSet.java:99:错误:找不到符号 int size = this.medianArray.length;
public double median()
{
double[] medianArray = getData();
Arrays.sort(medianArray);
int size = this.medianArray.length;
int one = 1;
int two = 2;
double median = 0.0;
if (size % 2 == 0) {
median = this.medianArray[size / two] + this.medianArray[(size / two) + one];
median = median / two;
}
else
{
// 1, 2, 3, 4, 5, (6), 7, 8, 9, 10 , 11
median = this.medianArray[((size - one) / two) + one];
}
return median;
}
哦,getData方法只是创建了一个数组的副本:
public double[] getData()
{
double[] DataCopy = new double[size()];
for (int k = 0; k < size(); k++)
DataCopy[k] = this.data[k];
return DataCopy;
}
答案 0 :(得分:0)
关键字“this”表示medianArray是您班级的一个属性。在你的情况下,它是你函数中的局部变量,你可以简单地做
medianArray.length
答案 1 :(得分:0)
在median()
方法中专注于此:
double[] medianArray = getData();
Arrays.sort(medianArray);
int size = this.medianArray.length;
您将medianArray
创建为本地变量。稍后您尝试将其作为类成员变量引用。
这是不可能的,将最后一行更改为:int size = medianArray.length;
。
答案 2 :(得分:0)
最有可能的是,数组medianArray
不是您班级的字段,可能您希望使用medianArray
返回的getData()
。因此,只需在第99行的语句中删除之前的this
。
答案 3 :(得分:0)
问题在于这一行:
int size = this.medianArray.length;
medianArray
是median
函数的本地函数,但您使用this
引用它:
在实例方法或构造函数中,this
是对当前对象的引用 - 正在调用其方法或构造函数的对象。您可以使用this
从实例方法或构造函数中引用当前对象的任何成员字段。
删除this
,你应该好好去。请查看此官方教程页面:Using the this
Keyword