Reputation: 4802
Here is my code:
for (DrawableEntity entity : drawableEntityList) {
if (entity instanceof Beam) {
(Beam) entity.age += timeElapsed;
}
else if (entity instanceof Block) {
}
}
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?
Upvotes: 3
Views: 12890
Reputation: 9515
Notes: Beware of instanceof
operator
http://www.javapractices.com/topic/TopicAction.do?Id=31
Upvotes: 5
Reputation: 109037
Your casting syntax is not right.
Try this
if (entity instanceof Beam) {
((Beam) entity).age += timeElapsed;
}
else if (entity instanceof Block) {
}
Upvotes: 6