Re: Typecasting java.lang.Object???
Tanveer wrote:
Lee Weiner wrote:
In article <1159123116.294977.94870@i3g2000cwc.googlegroups.com>, "Tanveer"
<pankajgode@gmail.com> wrote:
Thanks Eric, for the best explanation i would have ever got on
classExceptionCast.
But actually, my problem is how do i do that???, i agree that it is not
possible, but still i want to do it....
What kind of object is getData() returning? If, for example, it's returning a
String that contains the data in a PDataNode object, you can retrieve the data
as a String, parse it into fields and construct a PDataNode object.
Lee Weiner
lee AT leeweiner DOT org
It is returning an object of type java.lang.Object.
But simple typecast to PxDataNode, does not solve the purpose.
How is java.lang.Object different and what is it's use in my
context...??? That will surely help
I think you may be confused about a pair of very important concepts in
java, class and type.
Each object has a class that is determined when it is created, and
cannot be changed during its lifetime.
During the object's lifetime, there will be reference expressions,
including reference variables, that point to it. Each reference
expression has a type that is fixed at compile time, regardless of which
object it references.
However, Java ensures that the type of a reference expression that
points to a given object always corresponds to the object's class,
or one of its superclasses, or an interface its class implements,
directly or indirectly.
For example, the object "xxx" is of class String. It can be referenced
by expressions of types String, Object, Serializable, CharSequence, or
Comparable.
This ensures that any object pointed to by a reference expression has
all the members associated with the expression's type. If a Comparable
expression points to an object, that object really does have a compareTo
method.
If you want to be able to reference an object as a PxDataNode, you must
create it as a PxDataNode, or an instance of a PxDataNode subclass. If
you are creating it e.g. by "new Object()", it does not have the
features of a PxDataNode and can never be referenced as a PxDataNode.
It might be a good idea to explain at a higher level what you are trying
to achieve.
Patricia