开发者

Java cast parent to child?

Here is my code:

for (DrawableEntity entity : drawableEntityList) {
    if (entity instanceof Beam) {
        (Beam) entity.age += timeElapsed;
    }
    else if (entity instanceof Block) 开发者_Go百科{

    }
}

Basically drawableEntityList is a Vector of DrawableEntitys, and I want to iterate through everything in the Vector. Then depending on if they are subclass Beam or subclass Block I want to do something different.

The problem is that I'm trying to change a variable that only the subclasses have, I figured I could cast with (Beam) but it doesn't work.

Is it not possible to cast a parent class to a child class?


Your casting syntax is not right.

Try this

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

}


Notes: Beware of instanceof operator

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜