If I understand your question correctly, you can (mis)use Java's Stack Trace system to determine the caller. Put something like this in the constructor of an object:
try {
throw new Exception();
} catch (Exception ex) {
String s = ex.getStackTrace()[1].getClassName();
System.out.println(s);
}
I doub't that's EXACTLY what you are looking for, but, if you play around with it a bit, I think you'll find what you want.