我们假设我有以下类:
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;
帮助理想
P.S。注释也不起作用。
答案 0 :(得分:0)
您可以使用getClass()
方法
ArrayList<AnSuperClass> theList = new ArrayList<>();
theList.add(new AnBetterClass());
theList.add(new AnSuperClass());
for(AnSuperClass asc: theList)
System.out.println(asc.getClass());
打印出来
class pck.AnBetterClass
class pck.AnSuperClass