Suchen Sie nach Methodenaufrufen im Eclipse-Projekt

83

Ich habe eine Klasse X, die die Methode myMethod () enthält. Ich möchte in allen Projekten in meinem aktuellen Arbeitsbereich Speicherorte finden, an denen diese myMethod () aufgerufen wird. Ich kann keine Suchfunktionen verwenden, da myMethod () mehrere Klassen enthält und es nicht statisch ist. Daher muss ich den Namen der Objekte dieser Klasse kennen, was nicht möglich ist, ohne die Projekte manuell zu erkunden.

Hat Eclipse eine Lösung dafür?

Shailesh Tainwala
quelle

Antworten:

115

Gehen Sie zu der Methode in X.java und wählen Sie im Kontextmenü die Option Anrufhierarchie öffnen.

Thilo
quelle
11
Das wusste ich nicht. Ich habe eine CTRL-GVerknüpfung verwendet und es hat nicht funktioniert, da dies nicht dazu führen würde, dass die betreffende Methode von einer anderen Methode in derselben Klasse aufgerufen wird. Irgendwelche Ideen, warum das so ist? ...keine Ursache! CTRL-SHIFT-Gdient zum Auffinden von Referenzen, CTRL-Gdient zum Auffinden von Erklärungen! : S
Xonatron
4
In meiner Sonnenfinsternis hier (Mars) ist die Verknüpfung Strg + Alt + H :)
Thekucays
Ich habe alles versucht, was ich finden konnte, Strg + Umschalt + G, Strg + Alt + H und vieles mehr, aber alle zeigen mir "Die Ressource befindet sich nicht auf dem Erstellungspfad eines Java-Projekts". Also funktioniert keine. Jemand schlug vor, mit der rechten Maustaste auf das Projekt in der Baumstruktur zu klicken und im Kontextmenü "Pfad erstellen" zu wählen, aber ich sehe dies nicht. Ich bin auf Eclipse Photon. Danke
Pixel
51

Wählen Sie mymethod()und drücken Sie ctrl+ alt+ h.

Um detaillierte Informationen zu einer Methode anzuzeigen, können Sie diese verwenden, indem Sie das jeweilige Objekt oder die Methode auswählen und mit der rechten Maustaste klicken. Sie können die " OpenCallHierarchy " ( Ctrl+ Alt+ H) sehen. So gibt es viele Tools, mit denen Sie Ihre Arbeit einfacher gestalten können, z. B. " Quick Outline " ( Ctrl+ O), um die in einer bestimmten Java-Datei deklarierten Datentypen und Methoden anzuzeigen.

Weitere Informationen hierzu finden Sie in dieser Eclipse-Referenz

Nirmalthin jenseits
quelle
3
... was die Anrufhierarchie öffnet.
Xonatron
Ich habe alles versucht, was ich finden konnte, Strg + Umschalt + G, Strg + Alt + H, Strg + O und vieles mehr, aber alle zeigen mir "Die Ressource befindet sich nicht im Erstellungspfad eines Java-Projekts". Also funktioniert keine. Jemand schlug vor, mit der rechten Maustaste auf das Projekt in der Baumstruktur zu klicken und im Kontextmenü "Erstellungspfad" auszuwählen, aber ich sehe dies nicht. Ich bin auf Eclipse Photon. Danke
Pixel
10

Sie können auch nach bestimmten Methoden suchen. Wenn Sie beispielsweise nach einer isEmpty()Methode der Zeichenfolgenklasse suchen möchten, müssen Sie - Suchen -> Java -> eingeben java.lang.String.isEmpty()und in der Option 'Suchen nach' Methode verwenden .

Sie können dann den gewünschten Bereich auswählen.

Vishnu Prasad Kallummel
quelle
9

Bewegen Sie den Cursor auf den Methodennamen. Klicken Sie mit der rechten Maustaste und wählen Sie im Popup-Menü Referenzen> Projekt oder Referenzen> Arbeitsbereich.

Ted Hopp
quelle
5
select method > right click > References > Workspace/Project (your preferred context ) 

oder

(Ctrl+Shift+G) 

Dies zeigt Ihnen eine Suchansicht mit der Hierarchie der Klassen und Methoden, die diese Methode verwenden.

Saif
quelle
3

Klicken Sie mit der rechten Maustaste auf Methode und dann auf Anrufhierarchie öffnen

Eclipse Rechtsklick Anrufhierarchie

Manjeet
quelle
Ich habe alles versucht, was ich finden konnte, Strg + Umschalt + G, Strg + Alt + H und viele mehr, aber alle zeigen mir "Die Ressource befindet sich nicht auf dem Erstellungspfad eines Java-Projekts". Also funktioniert keine. Jemand schlug vor, mit der rechten Maustaste auf das Projekt in der Baumstruktur zu klicken und im Kontextmenü "Erstellungspfad" auszuwählen, aber ich sehe dies nicht. Ich bin auf Eclipse Photon. Danke
Pixel
@pixel - Bitte machen Sie "mvn clean install". Dann versuchen Sie es erneut. Dies kann passieren, weil Ihr Projekt nicht richtig erstellt wurde.
Manjeet