Aufrufer identifizieren

Status
Nicht offen für weitere Antworten.

tmatt

Neues Mitglied
Wie kann ich mit der Reflection API oder etwas anderem die Klasse feststellen, die meine Methode aufgerufen hat?

Dank im Voraus
 

tmatt

Neues Mitglied
Naja, ich will eine simple Zugriffsbeschränkung machen. Auf dem Stack liegen ja nur Rücksprungadressen, ich wollte schon den Klassen oder Archiv-Namen.
 

AlArenal

Top Contributor
tmatt hat gesagt.:
Naja, ich will eine simple Zugriffsbeschränkung machen. Auf dem Stack liegen ja nur Rücksprungadressen, ich wollte schon den Klassen oder Archiv-Namen.

In welchem kruden Szenario reichen die Access Modifier in Java nicht aus?
 

Lim_Dul

Top Contributor
tmatt hat gesagt.:
Naja, ich will eine simple Zugriffsbeschränkung machen. Auf dem Stack liegen ja nur Rücksprungadressen, ich wollte schon den Klassen oder Archiv-Namen.

Im Stacktrace von Java sind auch die Klassennamen enthalten.
 

Stradi

Mitglied
ich bräuchte das auch!!!

kann aber mit der antwort nicht viel anfangen...

ich müsste in einer methode der klasse b wissen welche methode welcher klasse diese aufgerufen hat! wie komm ich auf den stack der javaapplikation hin, wie kann ich ihn ansprechen und lesen??

lg,
stradi
 

Murray

Top Contributor
Code:
StackTraceElement[] trc = Thread.currentThread().getStackTrace();
 

Stradi

Mitglied
danke danke... :)

hab das diesen moment selbst schon rausgefunden... habs etwas anders... kommt aber wohl auf das selbe raus... ;) ... außerdem gibts die methode .getStackTrace() erst ab Java 5 - wenn ich das richtig gelesen hab ... also wer noch mit älterer java version entwickelt:

Code:
String callingClass = (new Throwable()).getStackTrace()[1].getClassName();
String callingMethode = (new Throwable()).getStackTrace()[1].getMethodName();

liefert mir die aufrufende klasse und die aufrufende methode... :)

lg und noch mal thanx
stradi
 

Kola

Aktives Mitglied
Bist du sicher, dass du das benutzen willst?

Ich denke mal, stärker kann man gar nicht koppeln. Wenn eine Funktion ihr Verhalten abhängig von der aufrufenden Funktion macht, dass bietet dir die Funktion überhaupt keine Abstraktion mehr.

Eine einfache Rechteverwaltung könnte man mit einem Benutzerkontext realisieren, der Informationen bereithält.
 

Stradi

Mitglied
ich brauch das ja gar nicht um rechte zu verwalten... ich will nur, dass ich für diese spezifische Methode mitloggen kann, welche methode sie aufgerufen hat... mehr nicht...
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben