Я следующие классы:Проверьте наличие подкласса в Java
Class Dog extends Animal
Class Cat extends Animal
Class Mouse extends Animal
Кроме того, у меня есть List
, в котором я ставлю каждый Animal
, независимо от подкласса:
List<? extends Animal> list = new ArrayList<? extends Animal>();
Заполнение указанного списка с Dogs
, Cats
и Mice
работает отлично, если я не хочу позже проверить, что такое Animal
, есть внутри списка.
for (Animal animal: list) {
if (animal instanceof Dog) {
//do some dog stuff
}
if (animal instanceof Cat) {
// do some cat stuff
}
}
Как я могу проверить каждое животное в списке, будь то собака, кошка или мышь?
Вы должны использовать полиморфизм (то есть переопределенные методы), чтобы избежать необходимости выполнять проверки 'instanceof'. –
Какой «чек» вы хотите? Вы хотите класс или вам комфортно со String? – Makoto
Я хотел бы знать, с каким животным я сейчас работаю, чтобы я мог запускать конкретный код для каждого животного, то есть собаку, кошку и мышь. Я думаю, что хочу знать класс. – Calius