создал везде метод getClassName() , который возвращает необходимую строку. вопрос как этим методом воспользоваться? прочитал статью про рефлексию вот она слабо понял и методы чет не работают. хотелось бы разобраться, как войти в класс и воспользоваться его методом
то есть моя логика- получить класс и воспользоваться по полученному классу методом. но хз как.
package com.javarush.task.task12.task1225;
/*
Посетители
*/
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
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) {
//напишите тут ваш код
//String name = o.getClass().getClassName();
Class clazz = o.getClass();
//Method getClassName() = clazz.getDeclaredMethod("getClassName");
return clazz.getClassName();
}
public static class Cat extends Animal //<--Классы наследуются!!
{
public String getClassName(){
return "Кот";
}
}
public static class Tiger extends Cat {
public String getClassName(){
return "Тигр";
}
}
public static class Lion extends Cat {
public String getClassName(){
return "Лев";
}
}
public static class Bull extends Animal {
public String getClassName(){
return "Бык";
}
}
public static class Cow extends Animal {
public String getClassName(){
return "Корова";
}
}
public static class Animal {
public String getClassName(){
return "Животное";
}
}
}