由构造函数调用的Arraylist

Nic*_*kon -4 java

我创建了一个ArrayList,并尝试在myAnalyzer上调用getAverage方法并指定myClassroom作为参数(参数).但它没有解决它给出以下错误,

GradeAnalyzer.java:40: error: method getAverage in class GradeAnalyzer cannot be applied to given types;

myAnalyzer.getAverage(myClassroom);
        ^
required: no arguments
found: ArrayList<Integer>
reason: actual and formal argument lists differ in length
1 error
Run Code Online (Sandbox Code Playgroud)

码:

import java.util.ArrayList;

public class GradeAnalyzer{
    //constructor
    public GradeAnalyzer(){
    }
    //method get average created returns int
    public int getAverage(){
        ArrayList<Integer> grades = new ArrayList<Integer>();
        if(grades.size() < 1){
            System.out.println("Arraylist is empty");
            return 0;
        }else{
            int sum = 0;      
            for(Integer grade :grades){
                sum = grade + sum;
            }
            int average = sum/grades.size();
            System.out.println(average);
            return average;
        }
    }
    public static void main (String[] args){
        ArrayList<Integer> myClassroom = new ArrayList<Integer>();
        myClassroom.add(98);
        myClassroom.add(92);
        myClassroom.add(88);
        myClassroom.add(75);
        myClassroom.add(61);
        myClassroom.add(89);
        myClassroom.add(95);
        System.out.println(myClassroom);
        GradeAnalyzer myAnalyzer = new GradeAnalyzer(); 
        myAnalyzer.getAverage(myClassroom);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 7

您的getAverage()方法不带参数.而是在其中创建一个新的空列表.
将其更改为

public int getAverage(List<Integer> grades){
    if(grades.size() < 1){
    ...
}
Run Code Online (Sandbox Code Playgroud)