【发布时间】:2015-12-13 07:30:40
【问题描述】:
假设我有以下课程:
public class AnSuperClass { ... }
和
public class AnBetterClass extends AnSuperClass { ... }
我还有以下 ArrayList:
private final ArrayList<AnSuperClass> theList;
我在其中放入了一些 AnBetterClass 和 AnSuperClass 类型的对象,如下所示:
theList.add(new AnBetterClass());
theList.add(new AnSuperClass());
如果我遍历列表:我如何知道我拥有两个类中的哪一个?以下查询将始终返回 false:
boolean foundOther = false;
for(AnSuperClass asc: theList)
if(!(asc instanceof AnSuperClass))
foundOther = true;
return foundOther;
帮助可取
附:注释也不起作用。
【问题讨论】:
-
instanceof检查整个层次结构。AnBetterClass是AnSuperClass。 -
是的,我知道,但我完全不知道如何解决这个问题