J’ai une application en tant que fichier JAR avec de nombreuses dépendances. Pour une raison quelconque, je dois décomstackr 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?
Cliquez avec le bouton droit sur l’interface et choisissez “Ouvrir la hiérarchie de types”. Cliquez ensuite sur “Afficher la hiérarchie des sous-types”.
Essayez Ctrl + T après avoir sélectionné le nom de la classe; devrait fonctionner en perspective Java.
Vous pouvez “Afficher la hiérarchie de type” 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 dans d’autres.
Donc, si vous avez décompilé un fichier JAR et qu’il ya un autre fichier JAR que vous n’avez pas décompilé, alors les implémentations (de l’interface) dans ce fichier JAR ne seront pas répertoriées.
Dites également que vous avez décompilé un fichier JAR en tant que projet et qu’il existe un autre projet faisant référence au fichier JAR, et non le projet décompilé.
Vous devrez donc décomstackr tous les fichiers JAR et les append en tant que projets (et append des références via “Java Build Path”) pour vous assurer que toutes les implémentations dans les fichiers JAR de votre choix sont répertoriées.
* La hiérarchie de type rapide, ctrl + T affichera une structure similaire dans un panneau de type info-bulle / saisie semi-automatique. Mais la hiérarchie complète des types est plus utile pour le type d’parsing que vous souhaitez effectuer.
Il y a un bouton radio “Implementors” dans Java Search.
Ou cliquez avec le bouton droit de la souris et sélectionnez Quick Type Hierarchy
pour un menu déroulant des interfaces d’extension et des classes d’implémentation.
Ctrl + H (Option de recherche) Ouvrez la perspective Java Search et entrez le nom de l’interface, cliquez sur le bouton radio Implementors et vous verrez quelles classes implémentent une interface particulière. Identique à la réponse de stackexchanger ci-dessus
Sélectionnez le nom de la classe, puis «F4» dans Eclipse (environnement Windows)