Hallo,
Gibt es (gibt es bestimmt!) eine Möglichkeit in einem Objekt herauszufinden in welcher Klasse bzw. welchem Objekt es instanziert worden ist?
Nein gibt es nicht. Die Klasse, von der aus die Instanz erzeugt wurde, spielt hinterher keine besondere Rolle mehr.
Naja, der Konstruktor könnte natürlich den Aufrufer, und damit die
instanzierende Methode auslesen und merken.
Seit 1.5 mit Thread.getCurrent().getStackTrace()
Ach, schau, das wußte ich noch gar nicht.
Die Methode heißt übrigens "currentThread()", nicht "getCurrent()".
Für älter JDKs musst Du eine Exception erzeugen und abfangen, dann den StackTrace in einen String schreiben lassen (geht glaube ich nur über einen Writer) und dann parsen.
Ja, so war das bis JDK 1.3. Für JDK 1.4 gilt "mein" Vorgehen. Für
JDK 1.5 ist deine Methode wohl die beste.
Wenn Du das Verhalten einer Methode vom aktuellen Stacktrace abhängig machen muss, bist Du mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Holzweg.
ACK!
Gruß
Slyh