【发布时间】:2013-02-25 05:46:49
【问题描述】:
我已经用 Visual Basic 成功地做到了这一点,我只是想知道是否有一种简单的方法可以用 Java 做到这一点。
我想要一个 For 循环,它将遍历来自基类集合的派生类。
public class Game{
private Collection<GameEntity> entities;
// Methods would go here to control GameEntity's
private abstract class GameEntity{
protected Game owner; //Defines which instance Game owns this Entity
public GameEntity(Game owner) {
this.owner=owner;
}
public abstract void tick();
}
private class Partical extends GameEntity{
public Partical(Game owner) {
super(owner);
}
public void tick(){
for (Partical p : owner.entities) { //HERE IS MY PROBLEM
if(p != this){ //Don't do physics with itself
}
}
}
}
}
好吧,我的 Game 类有一个 GameEntity 的集合,但 GameEntity 严格来说是一个 Base 类。
Partical 派生自 GameEntity 类。
我希望 for 循环做的是遍历 GameEntity 的集合并从 Collection 中挑选出所有 Partical 类。
我的问题是出现“不兼容的类型”错误。我确实意识到它们是不同的类型。
【问题讨论】:
-
你知道
instanceof吗?
标签: java collections for-loop each