Wechseln Sie in die Schnittstellenimplementierung in Eclipse IDE

140

Sie wissen, wie Sie in Eclipse durch Drücken F3einer Methode zu deren Deklaration gelangen? Nun, ich habe eine Methode, die Teil einer Schnittstelle ist. Wenn F3ich darauf klicke, komme ich natürlich zur deklarierenden Oberfläche.

Offensichtlich gibt es ein Objekt, das diese Schnittstelle implementiert, und hier wird die Methode tatsächlich implementiert. Ich möchte, wenn ich drücke F3, zur Implementierung springen, nicht zur Schnittstellendeklaration. Ich weiß, dass die Implementierung zur Kompilierungszeit möglicherweise nicht bekannt ist. Gibt es eine Möglichkeit für Eclipse, mir alle Klassen anzuzeigen, die die Schnittstelle implementieren, damit ich auswählen kann, welche implementierte Methode angezeigt werden soll? In diesem Fall suche ich nur manuell danach, um die implementierte Methode zu finden.

aeq
quelle
4
Strg + T gibt Ihnen ein Popup, F4 öffnet ein Fenster
Stephan

Antworten:

137

Folgendes mache ich:

  • Bewegen Sie den Cursor in der Benutzeroberfläche auf den Methodennamen. Drücken Sie F4. => Die Ansicht "Typhierarchie" wird angezeigt
  • Im unteren Teil der Ansicht sollte die Methode bereits ausgewählt sein. Klicken Sie in der Symbolleiste auf "Ansicht sperren und Mitglieder in Hierarchie anzeigen" (sollte das Symbol in der Symbolleiste ganz links sein).
  • Im oberen Teil der Ansicht können Sie alle Implementierungen der Methode durchsuchen.

Das Verfahren ist nicht sehr schnell, gibt Ihnen aber einen guten Überblick.

Chris Lercher
quelle
129

Nun ... nun ... ich hoffe, Sie verwenden Eclipse Helios, denn was Sie gefragt haben, ist auf Helios verfügbar.

Setzen Sie Ihren Textcursor erneut auf die Methode und klicken Sie auf Menü Navigieren → Implementierung öffnen. Wenn Sie nun mehr als eine Implementierung der Methode haben, können Sie auswählen, welche Implementierung geöffnet werden soll.

Alt-Text

Durch Definieren einer Tastenkombination unter Einstellungen → Allgemein → Tasten können Sie die Funktion sogar einfacher verwenden. Bevor Sie dies tun, prüfen Sie, ob diese Verknüpfung für Sie schnell genug ist.

Drücken Sie Strg + Klicken und halten Sie. Bewegen Sie nun Ihre Maus über dieselbe Methode. Tadam ... Sie werden die Wahl haben.

Alt-Text

Wenn Sie Open Implementation auswählen, haben Sie die gleiche Auswahl wie zuvor.

Nanda
quelle
3
Fantastisch. Dies löst etwas, das mich immer an Eclipse gestört hat. :) Vielen Dank.
Brimborium
Toller Tipp! Sie können aber auch einfach mit dem Mauszeiger darüber fahren und die Strg-Taste drücken und dann aus der Dropdown-Liste [in Eclipse-Sauerstoff] auswählen.
alter Mönch
73

Drücken Sie Ctrl+ Tauf den Methodennamen (anstatt F3). Dadurch wird die Typhierarchie als Popup angezeigt F4und ist daher etwas schneller als die Verwendung und die Ansicht der Typhierarchie.

Wenn Sie eine Methode ausführen, werden Subtypen, die die Methode nicht implementieren / überschreiben, ausgegraut. Wenn Sie auf eine Klasse in der Liste doppelklicken, gelangen Sie direkt zur Methode in dieser Klasse.

Jonathan
quelle
2
Funktioniert auch hervorragend nur mit Tastatur. Einfach STRG + T drücken und mit den Pfeiltasten navigieren. Drücken Sie die Eingabetaste, um zur Implementierung zu springen.
Es ist Leto
54

Es gibt einen großen Produktivitätsschub, wenn Sie der Open Implementation-Funktion eine Alt+ F3Schlüsselbindung hinzufügen und nur verwenden F3, um zu Schnittstellen und Alt+ F3zu Implementierungen zu wechseln.

Öffnen Sie die Schlüsselbindung für die Implementierung

Lukasz Frankowski
quelle
2
Toller Tipp! Vielen Dank. Nur traurig, dass Eclipse nur eine Hierarchieebene durchsucht.
Snicolas
Diese Lösung hat bei mir funktioniert. Viele der anderen (insbesondere die Pluggins) haben dies nicht getan.
Nelda.techspiress
In Eclipse Neon wird Alt + F3 für verwendet Incremental Find, ich habe stattdessen Alt + I gewählt
user7294900
12

Markieren Sie eine Schnittstelle und öffnen Sie mit Ctrl+ T"Quick Type Hierarchy".

Roland
quelle
12
ctrl + mouse hover + click "Open Implementation"

Ein ctrl + hoversollte das folgende Menü sehen:

Geben Sie hier die Bildbeschreibung ein

Getestet auf Eclipse Mars.2 (4.5.2)

tbraun
quelle
3

Folgendes mache ich:

Ich drücke den Befehl (auf dem Mac, wahrscheinlich die Steuerung auf dem PC) und bewege dann den Mauszeiger über die Methode oder Klasse. Wenn Sie dies tun, wird ein Popup-Fenster mit den Optionen "Open Declaration", "Open Implementation" und "Open Return Type" angezeigt. Sie können dann auf das klicken, was Sie möchten, und Eclipse bringt Sie genau dorthin. Ich glaube, dass dies für Version 3.6 und höher funktioniert.

Es ist genauso schnell wie IntelliJ, denke ich.

Mangusta
quelle
2

Siehe In Eclipse geht Strg-Klick zur Deklaration der Methode, auf die ich geklickt habe. Wie kann ich bei Schnittstellen mit einer Implementierung direkt auf diese Implementierung zugreifen? für einige alternative Lösungen.

  • Wie auch immer, ich denke, Sie suchen vielleicht nach so etwas:

http://eclipse-tools.sourceforge.net/implementors/

Mahju
quelle
Danke, das war auch hilfreich. Über diesen Link können Sie auch auf die Methode klicken, während Sie 'cntrl' gedrückt halten und dann 'Open Implementation' auswählen. Das geht noch schneller.
aeq
0

Wenn Sie Ihre Code-Navigation wirklich beschleunigen möchten, sollten Sie sich nWire für Java ansehen . Es ist ein Code Exploration Plugin für Eclipse. Sie können sofort alle zugehörigen Artefakte sehen. In diesem Fall konzentrieren Sie sich also auf den Methodenaufruf und sehen sofort alle möglichen Implementierungen, Deklarationen, Aufrufe usw.

zvikico
quelle
0

Die beste Lösung wäre Ctrl+ Alt+ I.

Computerfreak
quelle