required:double [] found:没有参数

时间:2012-05-28 18:55:28

标签: java arrays list average

代码:

 ArrayList <Integer> marks = new ArrayList();

 String output = "Class average:" + calculateAverage() + "\n" + "Maximum mark:" +  
 calculateMaximum() + "\n" +"Minimum mark:" + calculateMinimum() + "\n" + "Range of 
 marks:" + range;

 analyzeTextArea.setText(output);

 private double calculateAverage(double [] marks) {
 double sum = 0;
 for (int i=0; i< marks.length; i++) {
 sum += marks[i];
 }
 return sum / marks.length;
 }

忽略字符串中的其他内容(最小值,最大值和范围),但对于此行,

 String output = "Class average:" + calculateAverage() + "\n" + "Maximum mark:" +  
 calculateMaximum() + "\n" +"Minimum mark:" + calculateMinimum() + "\n" + "Range of 
 marks:" + range;

我收到错误:

  

必需:双倍[]
  发现:没有参数

为什么我会收到此错误,我应该更改哪些内容?

4 个答案:

答案 0 :(得分:7)

你以这种方式调用方法calculateAverage:calculateAverage(),没有任何参数。但是方法是这样宣布的:

private double calculateAverage(double [] marks) 

因此需要一个double[]类型的参数,但是你没有传递任何东西。

答案 1 :(得分:3)

看看这个:

String output = "Class average:" + calculateAverage() + ...

计算平均值是什么意思?您必须为该方法提供一些平均数据。 calculateMaximumcalculateMinimum等同样如此。没有任何上下文,这些方法无法做任何事情。

您的实际标记存储在哪里?据推测,你有一些存储标记的变量 - 所以通过它。例如:

String output = "Class average:" + calculateAverage(actualMarks) + ...

...显然除了真实变量,或者你用来存储标记的任何东西。

答案 2 :(得分:1)

私有double calculateAverage(double []标记)是方法声明,所以当它被调用时它必须具有double数组的参数

例如:

calculateAverage(double_value_array);

答案 3 :(得分:0)

您可以这样称呼它:

double d[] = {1, 2, 3};
double ret = calculateAverage(d);
System.out.println(ret);