我试图从一个类中的arraylist中删除“thing”,并将其添加到另一个类中的另一个arraylist中。
我有一个Player类,它包含两个数组列表,类型为Creature,类型为SpecialIncomeCounter。 我还有一个Bag类,它包含一个“Things”的数组列表,它们是Creatures和SpecialIncomeCounters。
我的Creature和SpecialIncomeCounter类都继承自我的抽象类Thing。
在第三节课中,我试图从我的Bag数组列表中取出“Things”并将其添加到我的播放器类中的正确数组列表中。
这就是我现在正在做的事情:
Thing thing;
for(int i=0;i<10;i++){
thing = bag.bag.get(i);
if(thing == Creature){ //this doesn't work
p1.addCreature((Creature)thing);
bag.bag.remove(i);
}
else if(thing == SpecialIncomeCounter){ //this doesn't work
p1.addSpecialIncomeCounter((SpecialIncomeCounter)thing);
bag.bag.remove(i);
}
}
问题是我无法弄清楚如何判断事物是否属于SpecialIncomeCounter或Creature。
有什么建议吗?
答案 0 :(得分:2)
instanceof
正是您要找的。 p>
Thing thing;
for(int i=0;i<10;i++){
thing = bag.bag.get(i);
if(thing instanceof Creature){
p1.addCreature((Creature)thing);
bag.bag.remove(i);
}
else if(thing instanceof SpecialIncomeCounter){
p1.addSpecialIncomeCounter((SpecialIncomeCounter)thing);
bag.bag.remove(i);
}
}