【发布时间】:2011-02-20 19:37:10
【问题描述】:
有没有办法从基类实例中找出派生类的名称?
例如:
class A{
....
}
class B extends A{
...
}
class c extends A{
...
}
现在如果一个方法返回一个A的对象,我能查出它是B还是C类型?
【问题讨论】:
-
请注意,type sniffing 有点代码味道。做这件事并不总是错误的,但它经常是错误的方法,你应该仔细看看你的设计。如果可能,请依赖多态性(但另请参阅 Steve Yegge 的 When Polymorphism Fails)。
-
baseInstance.getClass().getName()
标签: java oop reflection inheritance