Re: How do I determine the owner of an object?
Todd wrote:
If it can be done, how do I determine the class within which an object
was instantiated?
The desired output would be:
Example1
Example2
None such, as others have said. Don't forget though that there's no
difference between using a reference of type Double and using a
reference of type Example1. (I think Array references typically do use
up a bit more memory though.) So if you have the parent reference
anyway, you might as well pass that.
For example:
Example1 ex1 = new Example1();
Example2 ex2 = new Example2();
Vector<Double> values = new Vector<Double>();
values.add( ex1.getValue() );
values.add( ex2.getValue() );
Try this:
interface Example {
public Example getParent() {};
}
class Example1 extends Double implements Example
{
Double value = new Double( 12.34 );
public String toString() {
return value.toString();
}
Example1 getParent() {
return this;
}
}
And similar for Example2. Then you can:
Iterator<Double> valueIter = values.iterator();
while( valueIter.hasNext() )
{
Double value = valueIter.next();
System.out.println( "value's owner class is: "
+ ((Example)value).getParent()
.getClass().simpleClassName() );
}
}
I think this technique might work. Haven't tested it out in detail.