Задать вопрос
@WoodyAllen

Почему не могу обратится напрямую по индексу и получить объект и получаю ошибку «java: array required, but»?

Добрый день изучаю java. Подскажите почему не могу напрямую получить объект из массива по индексу?

public class Animal {
    private int id;
    private String name;

    public Animal(int id, String name){
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}


public class StorageAnimal {
    public Animal[] storage = new Animal[3];

    public void save(Animal animal, int index){
        storage[index] = animal;
    }
    public Animal get(int index){
        return storage[index];
    }
}


public class MainAnimal {
    public static void main(String[] args) {
        Animal Dog = new Animal(1, "dick");
        Animal Cat = new Animal(2, "musya");
        Animal Carrot = new Animal(11, "katya");

        StorageAnimal listAnimal = new StorageAnimal();
        listAnimal.save(Dog, 0);
        listAnimal.save(Cat, 1);
        listAnimal.save(Carrot, 2);

        System.out.println("Это животное по имени:" + listAnimal.get(0).getName() + " и с id:"+listAnimal.get(0).getId());
        System.out.println("Это животное по имени:" + listAnimal[0].getName() + " и с id:"+ listAnimal[0].getId());
    }
}


В первом выводе сделал через get и это все работает, но почему нельзя сделать как во втором выводе?
Ведь мы знаем наш массив и знаем что есть в нем и какого типа данные.
  • Вопрос задан
  • 55 просмотров
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@tuwkan
listAnimal имеет тип StorageAnimal а это не массив
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы