Hi!
Ich suche nach einer Möglichkeit, den Aufrufer einer Methode feststellen zu können,
ohne jenen explizit als Parameter an diese weitergegeben zu haben. Gibts für sowas
iregendeine Möglichkeit, nen Trick etc? Bei Exceptions gibts ja auch immer diese
Stack-Traces - kann man vielleicht auch irgendwie anders den aktuellen Stack-Zustand lesen?
Ich habe nämlich ein Szenario ähnlich dem folgenden (man beachte die Kommentare):
und ein Aufruf, wie
soll dann ermöglichen, daß folgendes geloggt wird:
Ich suche nach einer Möglichkeit, den Aufrufer einer Methode feststellen zu können,
ohne jenen explizit als Parameter an diese weitergegeben zu haben. Gibts für sowas
iregendeine Möglichkeit, nen Trick etc? Bei Exceptions gibts ja auch immer diese
Stack-Traces - kann man vielleicht auch irgendwie anders den aktuellen Stack-Zustand lesen?
Ich habe nämlich ein Szenario ähnlich dem folgenden (man beachte die Kommentare):
Code:
public class Speziallogger{
public static void log( String text ){
Class caller_class = /* hier soll die Klasse des Objekts rein, von dem aus log( String ) aufgerufen wurde */
Method caller_method = /* hier soll die Methode rein, die mich aufgerufen hat */
String signature = /* wird aus caller_method erstellt */
writeOut( caller_class.getName(), signature, text );
}
}
und ein Aufruf, wie
Code:
package com.bsp;
public class Beispiel{
public void BeispielMethode( String xx, int a ){
Speziallogger.log( "aufgerufen " + xx + " a=" + a );
}
}
soll dann ermöglichen, daß folgendes geloggt wird:
Code:
com.bsp.Beispiel :: BeispielMethode( java.lang.String, int ): "aufgerufen hallo a=174"