У меня есть такой код:
class Entity;
class EntityTool extends Entity;
class EntitySprite extends Entity;
class EntityToolSpoon extends EntityTool;
class EntityToolBow extends EntityTool;
class EntitySpritePlayer extends EntitySprite;
class EntitySpriteMonster extends EntitySprite;
Теперь у меня есть метод с именем move()
в Entity
, и некоторые другие перезаписывают его.
Теперь, если аргумент EntitySpriteMonster
, почему это не работает:
public void foonction(Object wut)
{
if (wut instanceof Entity) ((Entity)wut).move(x,y);
}
Функция перемещения (хотя это избыточно и не нужно. Сбой при if rawpeek instanceof...
):
@Override
public void move(double x, double y) {
super.move(x, y);
for (int i=0; i<8; i++) {
Object rawpeek = palette.get(i);
System.out.println(rawpeek);
if (rawpeek == null) continue;
if (rawpeek instanceof Entity)
((Entity) rawpeek).move(x, y);
}
}
РЕДАКТИРОВАТЬ: он просто прерывается. (оператор instanceof возвращает false)
Затмение показывает мне в отладке, что wut
определенно является EntitySpriteMonster
.