#java
#java
Вопрос:
Вот мой код:
for (DrawableEntity entity : drawableEntityList) {
if (entity instanceof Beam) {
(Beam) entity.age = timeElapsed;
}
else if (entity instanceof Block) {
}
}
По сути, drawableEntityList
это Vector
из DrawableEntitys
, и я хочу повторить все в Vector
. Затем, в зависимости от того, являются ли они подклассом Beam
или subclass Block
, я хочу сделать что-то другое.
Проблема в том, что я пытаюсь изменить переменную, которая есть только у подклассов, я подумал, что мог бы использовать (Beam), но это не работает.
Разве невозможно привести родительский класс к дочернему классу?
Комментарии:
1. Просто догадываюсь:
((Beam) entity).age = timeElapsed;
Ответ №1:
Ваш синтаксис приведения неверен.
Попробуйте это
if (entity instanceof Beam) {
((Beam) entity).age = timeElapsed;
}
else if (entity instanceof Block) {
}
Ответ №2:
Примечания: Остерегайтесь instanceof
оператора