Passez à l'implémentation de l'interface dans Eclipse IDE

140

Vous savez comment dans Eclipse, appuyer F3sur une méthode vous amènera à sa déclaration? Eh bien, j'ai une méthode qui fait partie d'une interface; cliquer F3dessus m'amène naturellement à l'interface de déclaration.

De toute évidence, il existe un objet implémentant cette interface et c'est là que la méthode est réellement implémentée. Je veux, quand j'appuie F3, passer à l'implémentation, pas à la déclaration d'interface. Je sais que l'implémentation peut ne pas être connue au moment de la compilation, alors existe-t-il un moyen pour Eclipse de me montrer toutes les classes implémentant l'interface afin que je puisse sélectionner la méthode implémentée à afficher? En ce moment, lorsque cela se produit, je recherche simplement cela manuellement pour trouver la méthode implémentée.

aeq
la source
4
Ctrl + T vous donne une fenêtre contextuelle, F4 ouvre une fenêtre
Stephan

Réponses:

137

Voici ce que je fais:

  • Dans l'interface, déplacez le curseur sur le nom de la méthode. Appuyez sur F4. => La vue Hiérarchie des types apparaît
  • Dans la partie inférieure de la vue, la méthode doit déjà être sélectionnée. Dans sa barre d'outils, cliquez sur "Verrouiller la vue et afficher les membres dans la hiérarchie" (devrait être l'icône de la barre d'outils la plus à gauche).
  • Dans la partie supérieure de la vue, vous pouvez parcourir toutes les implémentations de la méthode.

La procédure n'est pas très rapide, mais elle vous donne un bon aperçu.

Chris Lercher
la source
129

Eh bien ... eh bien ... j'espère que vous utilisez Eclipse Helios, car ce que vous avez demandé est disponible sur Helios.

Placez à nouveau votre curseur de texte sur la méthode et cliquez sur le menu Naviguer → Ouvrir l'implémentation. Maintenant, si vous avez plus d'une implémentation de la méthode, vous aurez le choix de choisir l'implémentation à ouvrir.

texte alternatif

En définissant une combinaison de touches sur Préférences → Général → Touches, vous pouvez même utiliser la fonctionnalité plus facilement, mais avant de faire cela, voyez si ce raccourci est assez rapide pour vous.

Appuyez sur Ctrl + clic et maintenez. Maintenant, déplacez votre souris sur la même méthode. Tadam… vous aurez le choix.

texte alternatif

Si vous choisissez Open Implementation, vous aurez le même choix qu'avant.

nanda
la source
3
Fantastique. Cela résout quelque chose qui m'a toujours dérangé à propos de l'éclipse. :) Merci beaucoup.
brimborium
Bon conseil! mais aussi vous pouvez simplement passer le curseur sur et appuyer sur ctrl puis sélectionner dans la liste déroulante [dans l'oxygène d'éclipse] .... Je veux dire que vous n'aurez peut-être pas besoin de maintenir ctrl + clic maintenant.
old-monk
73

Appuyez sur Ctrl+ Tsur le nom de la méthode (plutôt que sur F3). Cela donne la hiérarchie des types sous forme de fenêtre contextuelle, ce qui est légèrement plus rapide que l'utilisation F4et la vue de la hiérarchie des types.

De plus, une fois fait sur une méthode, les sous-types qui n'implémentent pas / ne remplacent pas la méthode seront grisés, et lorsque vous double-cliquez sur une classe dans la liste, cela vous mènera directement à la méthode de cette classe.

Jonathan
la source
2
Fonctionne également très bien avec le clavier uniquement. Juste CTRL + T et utilisez les touches fléchées pour naviguer. Appuyez sur Entrée pour passer à l'implémentation.
C'est Leto
54

Il y a un gros gain de productivité si vous ajoutez une liaison de clé Alt+ F3à la fonctionnalité d'implémentation ouverte, et que vous l'utilisez simplement F3pour accéder aux interfaces et Alt+ F3pour accéder aux implémentations.

Liaison de touches d'implémentation ouverte

Lukasz Frankowski
la source
2
Bon conseil! Merci. C'est juste triste que l'éclipse ne recherche qu'un seul niveau de hiérarchie.
Snicolas
Cette solution a fonctionné pour moi. Beaucoup d'autres (en particulier les pluggins) ne l'ont pas fait.
Nelda.techspiress
Dans Eclipse Neon Alt + F3 est utilisé pour Incremental Find, j'ai choisi Alt + I à la place
user7294900
12

Mettez en surbrillance une interface et utilisez Ctrl+ Tpour ouvrir "Hiérarchie de types rapides".

Roland
la source
12
ctrl + mouse hover + click "Open Implementation"

Sur ctrl + hover, vous devriez voir le menu suivant:

entrez la description de l'image ici

Testé sur Eclipse Mars.2 (4.5.2)

tbraun
la source
3

Voici ce que je fais:

J'appuie sur commande (sur Mac, probablement contrôle sur PC), puis je survole la méthode ou la classe. Lorsque vous faites cela, une fenêtre contextuelle apparaîtra avec les choix "Ouvrir la déclaration", "Ouvrir l'implémentation", "Ouvrir le type de retour". Vous pouvez ensuite cliquer sur ce que vous voulez et Eclipse vous y amène. Je pense que cela fonctionne pour la version 3.6 et plus.

C'est aussi rapide qu'IntelliJ je pense.

Mangusta
la source
2

Voir Dans eclipse, ctrl-clic va à la déclaration de la méthode sur laquelle j'ai cliqué. Pour les interfaces avec une seule implémentation, comment puis-je accéder directement à cette implémentation? pour quelques solutions alternatives.

  • Quoi qu'il en soit, je pense que vous cherchez peut-être quelque chose comme ceci:

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

mahju
la source
Merci, cela a également été utile. À partir de ce lien, vous pouvez également cliquer sur la méthode tout en maintenant enfoncée la touche «cntrl», puis choisir «Ouvrir l'implémentation». C'est encore plus rapide.
aeq le
0

Si vous cherchez vraiment à accélérer votre navigation dans le code, vous voudrez peut-être jeter un œil à nWire pour Java . C'est un plugin d'exploration de code pour Eclipse. Vous pouvez voir instantanément tous les artefacts associés. Donc, dans ce cas, vous vous concentrerez sur l'appel de méthode et verrez instantanément toutes les implémentations, déclarations, invocations possibles, etc.

zvikico
la source
0

La meilleure solution serait Ctrl+ Alt+ I.

computingfreak
la source