web-dev-qa-db-fra.com

Comment savoir quelles classes implémentent une interface particulière dans Eclipse?

J'ai une application en tant que fichier JAR avec de nombreuses dépendances. Pour une raison quelconque, j'ai besoin de décompiler une des bibliothèques et de l'ouvrir avec Eclipse. Pour une interface donnée dans le projet, existe-t-il un moyen de trouver la ou les classes qui l'implémentent? Il se peut que l'interface ait été implémentée dans une autre bibliothèque que je n'ai pas encore décompilée. Est-il possible de faire cela pour ce genre de cours?

82
Am1rr3zA

Cliquez avec le bouton droit sur l'interface et choisissez "Ouvrir la hiérarchie des types". Cliquez ensuite sur "Afficher la hiérarchie de sous-types".

107
JB Nizet

Essayer Ctrl+T après avoir sélectionné le nom de la classe; devrait fonctionner dans Java Perspective.

43
Scorpion

Vous pouvez "Afficher la hiérarchie des types" sur l'élément (clic droit pour choisir cette option ou appuyer sur F4 lorsque l'élément est en surbrillance) *.

Cependant, cela ne listera que les éléments des projets référencés ("dépendants"). Pas chez les autres.

Ainsi, si vous avez décompilé un fichier jar et qu'il existe un autre fichier jar que vous n'avez pas décompilé, les implémentations (de l'interface) de ce fichier ne sont pas répertoriées.

De plus, supposons que vous avez décompilé un fichier jar en tant que projet et qu’un autre projet fait référence au fichier jar, et non au projet décompilé; les implémentations ne seront pas répertoriées.

Vous devrez donc décompiler tous les fichiers JAR et les ajouter en tant que projets (et ajouter des références via "Chemin de construction Java") pour vous assurer que toutes les implémentations dans les fichiers JAR de votre choix sont répertoriées.

* Hiérarchie de type rapide, ctrl + T montrera une structure similaire dans un type de panneau info-bulle/autocomplete. Mais la hiérarchie complète des types est plus utile pour le type d'analyse que vous avez l'intention de faire.

11
Nivas

Le bouton radio "Implementors" est présent dans Java Search.

7
Vlad

Ou faites un clic droit et sélectionnez Quick Type Hierarchy pour un menu déroulant d'interfaces extensibles et de classes d'implémentation.

1
Sean Patrick Floyd

Sélectionnez le nom de la classe, puis "F4" dans Eclipse (environnement Windows).

0
FullStackDeveloper

Ctrl + H (option de recherche) Ouvrez Java Perspective de recherche et entrez le nom de l'interface, cliquez sur le bouton radio Implementors pour trouver les classes qui implémentent une interface particulière. Identique à la réponse de stackexchanger ci-dessus.

0
Rohit Mathur