Methoden Rückverfolgung Methodenaufruf

I

ichwilleinennam

Gast
Hallo zusammen,

ist es möglich herauszufinden aus welcher Methode und Klasse heraus eine Methode aufgerufen wurde, ohne Code in der aufrufenden Klasse ändern zu müssen.


Mit freundlichen Grüßen
 

stone71

Mitglied
Du solltest am Anfang der Methode einen Breakpoint setzen und dies dann Debuggen. Wenn dieser Punkt erreicht wird, dann sieht Du aus welcher Klasse der Aufruf kam. Eine andere Möglichkeit ist die References zu prüfen, wenn Du Dich zum Beispiel in Eclipse befindest.
 

pl4gu33

Top Contributor
du kannst dafür den DeBug- Modus benutzen .... du setzt einen Haltepunkte in der Methode und siehst dann dort, wer die Methode aufgerufen hat.

Allgemein kannst auch auf die Methode klicken und mit Strg+Alt+H die History aufrufen und siehst alle Klasse und Methoden, die die Methode aufrufen in Eclipse
 
Zuletzt bearbeitet:
I

ichwilleinennam

Gast
Danke erstmal für die Antworten,

leider zielen diese etwas an meiner eigentlichen Frage vorbei. Ich weiß wie ich den Debugger benutze.


Ich suche allerdings zur Zeit nach einer Lösung im Quellcode auf den Namen und die Klasse der aufrufenden Methode zugreifen zu können. Kennt jemand da eine Möglichkeit?

Mfg
 
S

SlaterB

Gast
ohne externe Tools im einfachen Code für ganz schnelle Tests am kürzesten
new Error("test").printStackTrace();

edit:
kompliziertes kommt gleich noch

edit:
ich habe als Hilfsmethode:
Java:
in Helper-Klasse:

    public static String getFilteredFirstCaller()   {
        String info = ":: ";
        StackTraceElement[] stArray = Thread.currentThread().getStackTrace();
        if (stArray == null || stArray.length < 1) return info;
        for (StackTraceElement ste : stArray)   {
            String className = ste.getClassName();
            // nach erster interessanter Klasse suchen
            if (!className.startsWith("...Helper") && ...)   {
                info += className + "." + ste.getMethodName() + "(" + ste.getFileName() + ":" + ste.getLineNumber() + ")";
                break;
            }
        }
        return info;
    }
diese Formatierung ist für Eclipse-Konsole hilfreich um dann per Mausklick wie bei Exceptions in entsprechende Klasse springen zu können,
statt Klassenname anzuschauen kann man auch gleich auf 2., 3. oder 4. Element im Array gehen, ausprobieren
 
Zuletzt bearbeitet von einem Moderator:

Asgar13

Bekanntes Mitglied
Welche IDE?

Bei Idea klick man auf den Methodennamen und drückt Alt+F7, ein paar mal bestätigen und man hat die Aufrufer.
 

stone71

Mitglied
Wahrscheinlich habe ich es nicht verstanden, aber bei Methoden in Eclipse, geht man zu dem Methodennamen, rechte Maustaste, References, dann auf den Bereich, so zum Beispiel Workspace und dann werden die aufrufenden Klassen gezeigt.
 

Andi_CH

Top Contributor
ohne externe Tools im einfachen Code für ganz schnelle Tests am kürzesten
new Error("test").printStackTrace();

Also ich finde das da sieht einfacher aus

Java:
package com.javaforum;

public class Test1 {
	
	private void fktA() {
		fktB();
	}
	private void fktB() {
		fktC();
	}
	private void fktC() {
		fktD();
	}
	private void fktD() {
		fktE();
	}
	private void fktE() {
		fktF();
	}
	private void fktF() {
		try {
			throw new Exception();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		Test1 t1 = new Test1();
		t1.fktA();
		t1.fktD();
	}
}
 
S

SlaterB

Gast
nicht neidisch sein, Debugger sind immer Ansichtssache, der Code muss dafür anhalten, 50 Aufrufe etwa einer Rekursion sind mühsam,
ein Klick, 3 sec lang 17 fragliche Stellen durchlaufen lassen und danach 100 Zeilen Log anschauen hat auch seine Reize ;)

kann man auch mit dem übernächsten Test am nächsten Tag noch vergleichen
 

stone71

Mitglied
Stimmt, akzeptiere diese Einwand... Dann soll man eben logs lesen :) Dies mache ich auch und threads oder ähnlichen Sachen auch sinnvoll, aber vor allen Dingen im Fehlerfall, ist der Debug-Mode schon nicht schlecht ;)
 

Andi_CH

Top Contributor
Schönheit ist Geschmackssache :)

Aber ich gebe zu, dass ich vor lauter kompliziertem Javacode deinen Einzeiler übersehen habe!
Da stand doch noch

ohne externe Tools im einfachen Code für ganz schnelle Tests am kürzesten
Java:
new Error("test").printStackTrace();

und der ist wirklich elegant - nur wenn der schon im Original in Java-Tags gestanden hätte, dann hätte ich den nicht übersehen :D


Debugger sind gut, so lange man ein 1-Thread-System hat, das sehr tolerant programmiert ist.
Debugging eines Systemes in dem jeder Thread einen Timer als Überwachung drin hat und zickig reagiert wenn mal keine Reaktion kommt, ist nahzu unmöglich.
Auch Echtzeitsysteme ... na ja ... da müsste auch gleich die Uhr anhalten.

Ich würde mir schon lange einen Debugger wünschen, der alle Threads des Systemes anhält wenn einer in einen Breakpoint läuft. (Genau so wie ich objektspezifische Breakpoints möchte - also Break nur dann wenn genau in DIESEM Objekt etwas getan wird)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Methodenaufruf mit geänderten Argumenten Java Basics - Anfänger-Themen 10
S Methoden Methodenaufruf rekursiv zählen Java Basics - Anfänger-Themen 4
N methodenaufruf for each geht nicht Java Basics - Anfänger-Themen 2
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
O Methodenaufruf Java Basics - Anfänger-Themen 5
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
Queiser Methodenaufruf Java Basics - Anfänger-Themen 2
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
I Java Methodenaufruf Java Basics - Anfänger-Themen 9
A OOP Methodenaufruf in einer anderen Klasse Java Basics - Anfänger-Themen 2
G Methoden Probleme beim Methodenaufruf Java Basics - Anfänger-Themen 2
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
M Methodenaufruf in der Main Datei funzt nicht Java Basics - Anfänger-Themen 13
BadBat Klassen instanz als variable + methodenaufruf Java Basics - Anfänger-Themen 4
M Methodenaufruf in Methode Java Basics - Anfänger-Themen 6
M Objekt Name für MethodenAufruf nachträglich zuweisen? Java Basics - Anfänger-Themen 2
J if() mit Methodenaufruf kombiniert (Pixelerkennung) Java Basics - Anfänger-Themen 3
A Probleme beim Methodenaufruf von Object[] ! Java Basics - Anfänger-Themen 12
A Probleme beim Methodenaufruf von char[] ! Java Basics - Anfänger-Themen 10
T Rekursiver Methodenaufruf funktioniert nicht Java Basics - Anfänger-Themen 7
D Methoden g.setColor funktioniert nicht bei Methodenaufruf in anderer Klasse Java Basics - Anfänger-Themen 1
M Methoden Methodenaufruf allgemein Java Basics - Anfänger-Themen 3
H Ist Math.Random() eine Methode oder ein Methodenaufruf (Klausurfrage) Java Basics - Anfänger-Themen 4
O Methodenaufruf Java Basics - Anfänger-Themen 6
F Methodenaufruf Java Basics - Anfänger-Themen 1
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
J Array mit Methodenaufruf Java Basics - Anfänger-Themen 2
S Problem bei Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 3
OnDemand Methodenaufruf Java Basics - Anfänger-Themen 3
A Methoden Benutzerdefinierter Methodenaufruf Java Basics - Anfänger-Themen 4
O Methodenaufruf - Inhaltsveränderung Java Basics - Anfänger-Themen 23
G Methodenaufruf anderer Klasse Java Basics - Anfänger-Themen 18
L Einfacher Methodenaufruf vs. Objekt Java Basics - Anfänger-Themen 4
O Methodenaufruf im Konstruktor Java Basics - Anfänger-Themen 6
G was ist ein Methodenaufruf mit (){}? Java Basics - Anfänger-Themen 6
S Methoden Klassen Definition - Methodenaufruf Java Basics - Anfänger-Themen 7
K Methoden Methodenaufruf für BufferedWriter .. Java Basics - Anfänger-Themen 5
feardorcha Methodenaufruf Übergabe- und Rückgabewert Java Basics - Anfänger-Themen 5
W Methodenaufruf innerhalb einer Klasse - static vs. this Java Basics - Anfänger-Themen 3
A Problem bei Methodenaufruf Java Basics - Anfänger-Themen 6
B Parameterausführung bei Methodenaufruf Java Basics - Anfänger-Themen 8
A Methodenaufruf Java Basics - Anfänger-Themen 4
P Vererbung Methodenaufruf funktioniert aber Wertzuweisung von Variablen nicht Java Basics - Anfänger-Themen 9
S methodenaufruf Java Basics - Anfänger-Themen 8
G Erste Schritte Methodenaufruf, Variablen-Deklaration Java Basics - Anfänger-Themen 6
L Methodenaufruf in main() Java Basics - Anfänger-Themen 3
M Methodenaufruf in for-Schleife - nur 1 mal ausgegeben Java Basics - Anfänger-Themen 3
I Externer Methodenaufruf, Punkt-Notation Java Basics - Anfänger-Themen 11
E Methoden Wie kann ich eine Methode so schreiben, dass Methodenaufruf polymorph erfolgen kann? Java Basics - Anfänger-Themen 8
M Methoden Methodenaufruf mit .class. Java Basics - Anfänger-Themen 2
J rekursiver Methodenaufruf Java Basics - Anfänger-Themen 12
K Klassen this-Referenz und Klassen/Methodenaufruf Syntax Java Basics - Anfänger-Themen 3
T Java mehrfacher Methodenaufruf Java Basics - Anfänger-Themen 15
L Methodenaufruf aus anderer Klasse Java Basics - Anfänger-Themen 5
B Quicksort --> Methodenaufruf Java Basics - Anfänger-Themen 10
O Methodenaufruf Java Basics - Anfänger-Themen 4
A nullPointerException bei Methodenaufruf Java Basics - Anfänger-Themen 16
J Vererbung, Methodenaufruf Java Basics - Anfänger-Themen 4
M Problem bei Methodenaufruf aus ActionListener Java Basics - Anfänger-Themen 5
G Methodenaufruf aus der Kommandozeile Java Basics - Anfänger-Themen 28
N Methodenaufruf funtioniert nicht Java Basics - Anfänger-Themen 3
C Methodenaufruf mit Variablen die gesetzt werden Java Basics - Anfänger-Themen 10
Antoras mit ActionListener/Methodenaufruf Textfelder zeichnen Java Basics - Anfänger-Themen 4
G Dynamischer Methodenaufruf Java Basics - Anfänger-Themen 3
G Methodenaufruf über ein Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
H ungültige methodenaufruf Java Basics - Anfänger-Themen 16
G Methodenaufruf Java Basics - Anfänger-Themen 3
G Frage zu Oberklasse bei Methodenaufruf Java Basics - Anfänger-Themen 2
V Dynamischer Klassen bzw. Methodenaufruf Java Basics - Anfänger-Themen 6
V Wie und wieso geht dieser Methodenaufruf? Java Basics - Anfänger-Themen 2
S Methodenaufruf Java Basics - Anfänger-Themen 6
G Methodenaufruf in der for-Schleife mit Array Java Basics - Anfänger-Themen 7
L hsqldb Methodenaufruf Java Basics - Anfänger-Themen 10
K synchron und asynchroner Methodenaufruf Java Basics - Anfänger-Themen 17
R Fehler bei Methodenaufruf Java Basics - Anfänger-Themen 2
G Methodenaufruf Java Basics - Anfänger-Themen 3
T NullPointerException bei Methodenaufruf Java Basics - Anfänger-Themen 2
G Methodenaufruf Java Basics - Anfänger-Themen 10
K Klassenübergriefendes Methodenaufruf Problem Java Basics - Anfänger-Themen 6
S methodenaufruf. Java Basics - Anfänger-Themen 16
G methodenaufruf Java Basics - Anfänger-Themen 4
E Methodenaufruf mittels variable? kA Java Basics - Anfänger-Themen 5
G methodenaufruf Java Basics - Anfänger-Themen 3
G methodenaufruf Java Basics - Anfänger-Themen 5
W Überschreiben und Methodenaufruf Java Basics - Anfänger-Themen 3
L Methodenaufruf zwischen Klassen Java Basics - Anfänger-Themen 3
C Methodenaufruf mit throws IOException Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben