以下是我的代码:
for (DrawableEntity entity : drawableEntityList) {
if (entity instanceof Beam) {
(Beam) entity.age += timeElapsed;
}
else if (entity instanceof Block) {
}
}
基本上,
drawableEntityList
是一个 DrawableEntitys
的 Vector
,我想要遍历 Vector
中的所有内容。然后,根据它们是子类 Beam
还是子类 Block
,我想要做出不同的反应。问题在于,我正在尝试更改仅子类拥有的变量,我想用 (Beam) 进行转换,但它没有起作用。
难道不能将父类强制转换为子类吗?
((Beam) entity).age += timeElapsed;
- Harry Joy(Beam) entity.age += timeElapsed;
等同于((Beam) entity.age) += timeElapsed;
。这会导致两个错误:(1)无法将entity.age
转换为Beam
,以及(2)类型为Beam
的表达式不适用于+=
运算符的左操作数。希望这能帮助理解。 - Kröw