Java не может найти методы класса - PullRequest
0 голосов
/ 04 ноября 2011

Java дает мне ошибку, что
Java \ Workspace \ PROJECTS \ Farm \ animalLab.java [строка: 15] Ошибка: не могу найти символ символ: method addAnimal(java.lang.String,int,Farm[]) location: переменная ферма типа 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 Ответ

1 голос
/ 04 ноября 2011

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

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

Посмотри на это так ...

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

location: переменная ферма [которая] типа Farm []

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

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

Удачного кодирования.

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