Gets the {@link ReferenceType} that mirrors the typeof this object. The type may be a subclass or implementor of the declared type of any field or variable which currently holds it. For example, right after the following statement.
Object obj = new String("Hello, world!");
The ReferenceType of obj will mirror java.lang.String and not java.lang.Object.
The type of an object never changes, so this method will always return the same ReferenceType over the lifetime of the mirrored object.
The returned ReferenceType will be a {@link ClassType} or{@link ArrayType} and never an {@link InterfaceType}.
@return the {@link ReferenceType} for this object.