J'ai une application sous forme de fichier JAR avec de nombreuses dépendances. Pour une raison quelconque, je dois décompiler l'une des bibliothèques et l'ouvrir avec Eclipse. Pour une interface donnée du 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?
88
Essayez Ctrl+ Taprès avoir sélectionné le nom de la classe; devrait fonctionner dans la perspective Java.
la source
Vous pouvez "Afficher la hiérarchie des types" sur l'élément (cliquez avec le bouton droit pour choisir cette option ou appuyez sur F4 lorsque l'élément est mis en surbrillance) *.
Toutefois, cela ne listera que les éléments des projets référencés («dépendants»). Pas dans les autres.
Donc, si vous avez décompilé un fichier jar et qu'il y a un autre fichier que vous n'avez pas décompilé, les implémentations (de l'interface) de ce fichier ne seront pas répertoriées.
Supposons également que vous ayez décompilé un fichier jar en tant que projet et qu'il existe un autre projet qui fait référence au fichier jar, et non au projet décompilé, les implémentations qu'il contient ne seront pas non plus répertoriées.
Vous devrez donc décompiler tous les jars et les ajouter en tant que projets (et ajouter des références via "Java Build Path") pour vous assurer que toutes les implémentations dans les jars de votre choix sont répertoriées.
* Hiérarchie de type rapide, ctrl + T affichera une structure similaire dans une info-bulle / type de panneau de saisie semi-automatique. Mais la hiérarchie complète des types est plus utile pour le type d'analyse que vous avez l'intention de faire.
la source
Il y a un bouton radio "Implémenteurs" dans la recherche Java.
la source
Ou cliquez avec le bouton droit de la souris et sélectionnez
Quick Type Hierarchy
un menu déroulant pour étendre les interfaces et implémenter les classes.la source
Ctrl + H (option de recherche) Ouvrez la perspective de recherche Java et, entrez le nom de l'interface, cliquez sur le bouton radio Implémenteurs et vous trouverez quelles classes implémentent une interface particulière. Identique à la réponse de stackexchanger ci-dessus
la source
Sélectionnez le nom de la classe, puis 'F4' dans Eclipse (environnement Windows)
la source