我的课如下:
public static double Average(double [] temperatures){
int size = temperatures.length;
double total = 0;
for(int i = 0; i <size;i++){
total += temperatures[i];
}
double average =total/size;
return size;
}
在主要方法上,我使用了此方法:
Average(1.0,2.5,3.7,4.8);
我遇到以下错误:
错误:Rissam类中的方法平均值不能应用于给定 类型;
平均值(1.0,2.5,3.7,4.8);
必需:double []
找到:double,double,double,double
原因:实际和正式 参数列表的长度不同
答案 0 :(得分:3)
将方法签名从数组更改为var args:
public static double Average(double... temperatures) {
如果参数是数组,则必须传递和数组,而不仅是值列表。
答案 1 :(得分:2)
您要做的是,给了四个double作为参数,但是该方法需要一个数组,因此必须首先将它们放在数组中:
public static void main(String[] args){
double[] array = {1.0,2.5,3.7,4.8};
Average(array);
}
OR
您将方法的参数声明为 double ... temperature ,因此方法将接受您在上面的代码中给出的参数:
public double Average(double... temperatures)
答案 2 :(得分:0)
需要将arg作为双精度数组传递。
将Average(1.0,2.5,3.7,4.8);
更改为Average(new double[]{1.0,2.5,3.7,4.8});
将方法签名更改为public static double Average(double ...temperature)
答案 3 :(得分:0)
将方法更改为-
public static double Average(double ... temperatures){
int size = temperatures.length;
double total = 0;
for(int i = 0; i <size;i++){
total += temperatures[i];
}
double average =total/size;
return size;
}
其中...表示可变长度参数。它等效于数组。 或通过传递数组
来更改方法调用