使用
instanceof或
Class#getClass()
A returned = getA();if (returned instanceof B) { .. }else if (returned instanceof C) { .. }getClass()要么返回:
A.class,
B.class,
C.class
在if子句中,您需要向下转换-即
((B) returned).doSomethingSpecificToB();
也就是说,有时认为使用
instanceof或是
getClass()不好的做法。您应该使用多态性来避免需要检查具体的子类,但是我不能用给出的信息告诉您更多信息。



