Метод в классе не может быть применен к данным типам.Требуется: без аргументов - PullRequest
0 голосов
/ 22 января 2019

Я новичок в кодировании, так что это, вероятно, будет очень простой вопрос.

Когда я компилирую, я получаю сообщение об ошибке:

GradeAnalyzer.java:49: 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

Что для жизни я могуне понимаю почему.Я думал, что моя проблема в том, что мне нужен аргумент, но у меня есть такой, который называется myClassroom.

Вот мой основной код: https://bitbucket.org/snippets/Faraday_/pexqKb

Спасибо за помощь.

Ответы [ 4 ]

0 голосов
/ 22 января 2019

Ваш метод getAverage () должен принять ArrayList в качестве аргумента, чтобы удалить ошибку компиляции.Попробуйте это

public int getAverage(ArrayList<Integer> myClassroom ) {

    if (myClassroom .size() < 1) {
      System.out.println("Error. Not items in Arraylist.");
      return 0;
    }

    else {
      int sum = 0;

      for (int grade : myClassroom) {
        sum += grade;
      }

      int average = sum / myClassroom .size();

      System.out.println(average);

      return average;

    }

  }
0 голосов
/ 22 января 2019

Ваш getAverage() метод не нуждается в аргументах. Но вы прошли один, когда вы звоните. Это ошибка, которую вы получаете здесь. Если вы хотите передать аргумент, вам нужно изменить сигнатуру getAverage() метода следующим образом:

public int getAverage(ArrayList<Integer> grades )

Вместо создания списка внутри вашего метода, вы можете использовать этот параметр оценок, который вы передали внутри метода.

0 голосов
/ 22 января 2019

Вы передаете аргумент getAverage () в метод main. Но в getAverage () нет параметров. Итак, вам просто нужно изменить метод getAverage (). Вот код для getAverage ().

public int getAverage(ArrayList<Integer> grades) {


    if (grades.size() < 1) {
      System.out.println("Error. Not items in Arraylist.");
      return 0;
    }

    else {
      int sum = 0;

      for (int grade : grades) {
        sum += grade;
      }

      int average = sum / grades.size();

      System.out.println(average);

      return average;

    }

  }
0 голосов
/ 22 января 2019

Вы вызываете метод получения

  myAnalyzer.getAverage(myClassroom);

Как большинство автоматически генерируемых методов получения, он не получает никаких аргументов, поэтому он не ожидает и не может получить параметр как myClassroom,измените свой код соответственно

 myAnalyzer.getAverage();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...