#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
— это упрощает добавление и повторение элементов.
Счастливого кодирования.