Есть ли способ узнать имя производного класса из экземпляра базового класса?Как найти подкласс из экземпляра базового класса?
.: например
class A{
....
}
class B extends A{
...
}
class c extends A{
...
}
теперь, если метод возвращает объект A
, я могу узнать, если он имеет тип B
или C
?
Обратите внимание, что [тип sniffing] (http://www.javapractices.com/topic/TopicAction.do?Id=3) - это немного запаха кода. Это не всегда неправильно, но это неправильный подход достаточно часто, чтобы вы внимательно изучили свой дизайн. Если возможно, полагайтесь на полиморфизм (но см. Также [Steve Yegge's [When Polymorphism Fails] (http://sites.google.com/site/steveyegge2/when-polymorphism-fails)). – outis