このループではEntity
、タイプEntityのオブジェクトと、エンティティを拡張するタイプProjectileのオブジェクトを含むタイプのArrayListを反復処理しています。オブジェクトがProjectileのインスタンスである場合、以下のコードを実行したいと思います。ただし、getVelocity()
メソッドはサブクラスProjectileにのみ存在し、Entityには存在しません。そのため、以下のコードをコンパイルできません。
個別のArrayListを使用するなど、これを回避する方法を考えることができます。ただし、重要なのは、すべてのエンティティを分離するのではなく、グローバルリスト内に保持することでした。この問題の簡単な解決策はありますか、それともコードの構造を変更する必要がありますか?
for (Entity f: glo.getList()) {
if (f instanceof Projectile)
f.setX(f.getVelocity()/rawFPS);
}