方法中的Java数组

方法中的Java数组,java,Java,我正在制作一个方法,它获取数组列表,并找到这些数字的平均值。 我知道我的方法是有效的,因为我刚刚把它从我的主要方法移到了“平均”方法。我只是在让数组使用该方法时遇到问题 我不确定通过average(a)调用该方法是否是错误的,或者是因为该方法写为公共静态无效平均值(double[]a){ 有人能给我指一下正确的方向吗 public class Ass10{ public static void main(String[] args) { System.out.print

我正在制作一个方法,它获取数组列表,并找到这些数字的平均值。 我知道我的方法是有效的,因为我刚刚把它从我的主要方法移到了“平均”方法。我只是在让数组使用该方法时遇到问题

我不确定通过
average(a)调用该方法是否是错误的,或者是因为该方法写为
公共静态无效平均值(double[]a){

有人能给我指一下正确的方向吗

public class Ass10{

    public static void main(String[] args) {
        System.out.println("asdf");
        int a[] = {1, 2, 3,4};
        average(a);
      }

    public static void average(double[] a){
        int sum = 0;

        for (int counter = 0; counter<a.length;counter++){
            sum += a[counter];
        }
                System.out.println(sum/a.length)

        }
公共类Ass10{
公共静态void main(字符串[]args){
系统输出打印项次(“asdf”);
int a[]={1,2,3,4};
平均(a);
}
公共静态无效平均值(双[]a){
整数和=0;

对于(int counter=0;counter您可以尝试将
公共静态无效平均值(double[]a)
更改为
公共静态无效平均值(int[]a)
int
double
在Java中是原语而不是对象。此外,它们的数组是不协变的。(数组平均值的协方差如果a扩展了B,那么a[]

因此,如果需要
int[]
,则不能使用
double[]
。 这应该做
publicstaticvoidaverage(int[]a){


其次,
sum+=a[计数器];
将导致精度损失,因为
sum
是类型
int
a
是类型
double

为什么它是
平均值(double[]a)
而不是
平均值(int[]a)
?到底是什么错误?我想Cratylus已经为您找到了答案。Hanks Cratylus,这就是问题所在!我需要它们都是double或int。您得到了什么例外??