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?
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".
Essayer Ctrl+T après avoir sélectionné le nom de la classe; devrait fonctionner dans Java Perspective.
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.
Le bouton radio "Implementors" est présent dans Java Search.
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.
Sélectionnez le nom de la classe, puis "F4" dans Eclipse (environnement Windows).
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.