This is called casting, see here:
Basically, by doing this:
IntElement temp = (IntElement) otherElement;
you are telling compiler to ignore the fact you declared otherElement
as DataElement
and trust you it is going to be an IntElement
and not DataElement
or some other subclass of DataElement
.
You cannot do just IntElement temp = otherElement;
as this way you would make otherElement
, which was defined as DataElement
become some other element, in this case IntElement
. This will be a big blow to type-safety, which is the reason types are defined at the first place.
This could technically be done using type inference:
however Java does not support that and you have to be explicit.
If it's possible to get other elements, you may want to use instanceof
to check the type runtime before casting:
- Operators/TheinstanceofKeyword.htm">http://www.java2s.com/Tutorial/Java/0060_Operators/TheinstanceofKeyword.htm
At some point after you go through this, you might want to take a look at generics, too:
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…