Возмущается на конструкцию switch. Конкретнее, ему не нравится ClassName.class.getSimpleName(). Я так понимаю, что таким образом я возвращаю простое имя класса(без пакетов), тоже самое возвращается и в условии значения switch, и switch проверяет их через equal?
Где я тут ошибаюсь?
package com.javarush.task.task12.task1225;
/*
Посетители
*/
public class Solution {
public static void main(String[] args) {
System.out.println(getObjectType(new Cat()));
System.out.println(getObjectType(new Tiger()));
System.out.println(getObjectType(new Lion()));
System.out.println(getObjectType(new Bull()));
System.out.println(getObjectType(new Cow()));
System.out.println(getObjectType(new Animal()));
}
public static String getObjectType(Object o) {
switch (o.getClass().getSimpleName()){
case Cat.class.getSimpleName():
return "Кот";
break;
case Tiger.class.getSimpleName():
return "Тигр";
break;
case Lion.class.getSimpleName():
return "Лев";
break;
case Bull.class.getSimpleName():
return "Бык";
break;
case Cow.class.getSimpleName():
return "Корова";
break;
case Animal.class.getSimpleName():
return "Животное";
break;
}
}
public static class Cat extends Animal //<--Классы наследуются!!
{
}
public static class Tiger extends Cat {
}
public static class Lion extends Cat {
}
public static class Bull extends Animal {
}
public static class Cow extends Animal {
}
public static class Animal {
}
}