私はある種のAchievementシステムを作成していて、KillXEnemiesクラスを持っていて、それからKillXEnemiesWeapon(特定の武器で殺された敵)のようなクラスを継承しています。そして、あなたが敵を殺すとき、私はアチーブメントオブジェクトをループし、敵が殺されたことを追加します:
if(object instanceof KillXEnemies)
((KillXEnemies)object).addEnemyKilled();
ただし、KillXEnemiesから継承するため、KillXEnemiesWeaponも追跡されます。私は1つの解決策が次のとおりであることを知っています:
if(object instanceof KillXEnemies && !(object instanceof KillXEnemiesWeapon))
((KillXEnemies)object).addEnemyKilled();
しかし、私はKillXEnemiesから継承する非常に多くのクラスを取得しようとしています。これは、20のようなものにするのは悪い解決策のようです!(object instanceof(---))
したがって、オブジェクトがKillXEnemiesWeaponではなくKillXEnemiesのみであるかどうかを確認する簡単な方法があるかどうか疑問に思っています。