Java为父母施舍父母?

时间:2011-05-26 03:37:28

标签: java

这是我的代码:

for (DrawableEntity entity : drawableEntityList) {
    if (entity instanceof Beam) {
        (Beam) entity.age += timeElapsed;
    }
    else if (entity instanceof Block) {

    }
}

基本上drawableEntityListVector的{​​{1}},我想迭代DrawableEntitys中的所有内容。然后,根据它们是子类Vector还是子类Beam,我想做一些不同的事情。

问题在于我正在尝试更改只有子类的变量,我想我可以使用(Beam)进行转换,但它不起作用。

是否无法将父类强制转换为子类?

2 个答案:

答案 0 :(得分:7)

您的演员语法不正确。

试试这个

if (entity instanceof Beam) {
    ((Beam) entity).age += timeElapsed;
}
else if (entity instanceof Block) {

}

答案 1 :(得分:5)

注意:小心instanceof运营商

http://www.javapractices.com/topic/TopicAction.do?Id=31