我已经使用 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 严格来说是一个基类。
Partical 派生自 GameEntity 类。
我希望 for 循环执行的操作是迭代 GameEntity 的 Collection,并从 Collection 中挑选出所有 Partical 类。
我的问题是出现“不兼容类型”错误。我确实意识到它们是不同的类型。
最佳答案
尝试:
for(GameEntity entity : owner.entities) {
if(entity instanceof Partical) {
Partical partical = (Partical) entity;
}
}
关于Java - 对于基类集合中的每个派生类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15315059/