在方法中创建数组

时间:2018-08-24 08:59:18

标签: java arrays

我的课如下:

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
原因:实际和正式   参数列表的长度不同

4 个答案:

答案 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作为双精度数组传递。

选项1

Average(1.0,2.5,3.7,4.8);更改为Average(new double[]{1.0,2.5,3.7,4.8});

选项2

将方法签名更改为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;    
}

其中...表示可变长度参数。它等效于数组。 或通过传递数组

来更改方法调用