Java не может найти методы класса

#class #methods

#класс #методы

Вопрос:

java выдает мне ошибку, которая
JavaWorkspacePROJECTSFarmanimalLab.java [строка: 15] Ошибка: не удается найти символ символ: method addAnimal(java.lang.String,int,Farm[]) местоположение: переменная ферма типа Ферма[]

мой код

 import java.util.Scanner;

class animalLab{
   public Farm[] farm = new Farm[1000];

public void main(String[]args){
Scanner reader = new Scanner(System.in);
int i = 0;

while(reader.hasNext()){
  if(reader.nextLine() == "Quit")
    break;
  if(reader.nextLine()=="Add"){
    System.out.println("Enter animal to add: ");
    String add = reader.nextLine();
    farm.addAnimal(add, i, farm);
  }
  

мой класс фермы выглядит примерно так

  class Farm{
public String animal = null;

public Farm(String s){
animal = s;
  

}

    public String getAnimal(){
return animal;
  

}

 public void addAnimal(String add, int i, Farm farm[]){
for (int x =0; x<farm.length; x  )
  if(farm[x] != null)
  if(farm[x].animal.equals(add)){
  System.out.println(add   " is already in the farm");
  break;
}

farm[i] = new Farm(add);
  

}

Ответ №1:

farm это массив (многих) объектов фермы.

Массивы не имеют addAnimal метода. Найдите время, чтобы внимательно прочитать сообщение об ошибке.

Посмотрите на это так…

ошибка: не удается найти [the] метод addAnimal

расположение: переменная farm [которая] типа Farm[]

Учтите, что farm[x].animal «работает» (выражение farm[x] имеет тип Farm ) — как это можно использовать для исправления ошибки компиляции?

Я бы рекомендовал называть переменные для массивов / коллекций во множественном числе, например farms , чтобы смягчить такую путаницу. Кроме того, если нет необходимости использовать массив (например, домашнее задание), я бы рекомендовал использовать ArrayList — это упрощает добавление и повторение элементов.

Счастливого кодирования.