这是我的代码:
for (DrawableEntity entity : drawableEntityList) {
if (entity instanceof Beam) {
(Beam) entity.age += timeElapsed;
}
else if (entity instanceof Block) {
}
}
基本上drawableEntityList
是Vector
的{{1}},我想迭代DrawableEntitys
中的所有内容。然后,根据它们是子类Vector
还是子类Beam
,我想做一些不同的事情。
问题在于我正在尝试更改只有子类的变量,我想我可以使用(Beam)进行转换,但它不起作用。
是否无法将父类强制转换为子类?
答案 0 :(得分:7)
您的演员语法不正确。
试试这个
if (entity instanceof Beam) {
((Beam) entity).age += timeElapsed;
}
else if (entity instanceof Block) {
}
答案 1 :(得分:5)
注意:小心instanceof
运营商