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
精彩评论