在这个循环中,我将遍历一个 ArrayList 类型Entity
,其中包含 Entity 类型的对象以及 Projectile 类型的对象,后者扩展了 Entity。如果对象是 Projectile 的实例,我希望执行以下代码。但是,该getVelocity()
方法仅在子类 Projectile 中,而不在 Entity 中。所以我无法编译下面的代码。
我可以想办法解决这个问题,例如使用单独的 ArrayList。但是,关键是将所有实体保留在一个全局列表中,而不是将它们分开。这个问题有一个简单的解决方案,还是我需要改变我的代码结构?
for (Entity f: glo.getList()) {
if (f instanceof Projectile)
f.setX(f.getVelocity()/rawFPS);
}