Pregunta ¿Cómo encontrar qué clases implementan una interfaz particular en Eclipse?


Tengo una aplicación como archivo JAR con muchas dependencias. Por alguna razón, necesito descompilar una de las bibliotecas y abrirla con Eclipse. Para una interfaz dada en el proyecto, ¿hay alguna manera de encontrar la (s) clase (s) que la implementan? Puede ser que la interfaz se haya implementado en otra biblioteca que aún no descompuse. ¿Es posible hacer esto para este tipo de clases?


76
2017-09-12 09:00


origen


Respuestas:


Haga clic con el botón derecho en la interfaz y elija "Abrir jerarquía de tipos". Luego haga clic en "Mostrar la jerarquía del subtipo".


96
2017-09-12 09:02



Tratar Ctrl+T después de seleccionar el nombre de clase; debería funcionar en Java Perspective.


40
2017-09-12 09:02



Puede "Mostrar jerarquía de tipos" en el elemento (haga clic con el botón derecho para elegir esta opción o presione F4 cuando el ítem está resaltado) *.

Sin embargo, esto solo mostrará una lista de los elementos referidos ("dependientes"). No en otros

Entonces, si ha descompilado un jar, y hay otro jar que no ha decompilado, entonces las implementaciones (de la interfaz) en ese jar no se listarán.

Además, digamos que ha decompilado un jar como proyecto y que hay otro proyecto que se refiere al jar, y no al proyecto descompilado, las implementaciones tampoco se mostrarán en la lista.

Por lo tanto, deberá descompilar todos los archivos jar y agregarlos como proyectos (y agregar referencias a través de "Java Build Path") para asegurarse de que se enumeren todas las implementaciones en los archivos jar de su elección.

* Jerarquía de tipo rápido, ctrl  +  T  mostrará una estructura similar en un tipo de panel de información sobre herramientas / autocompletar. Pero la jerarquía de tipos completa es más útil para el tipo de análisis que tiene la intención de hacer.


10
2017-09-12 09:03



Hay un botón de radio "Implementadores" en Java Search.


7
2018-02-28 14:51



O haga clic derecho y seleccione Quick Type Hierarchy para un menú desplegable de interfaces extendidas y clases de implementación.


1
2017-09-12 09:04



Ctrl + H (Opción de búsqueda) Abra la perspectiva de búsqueda de Java e ingrese el nombre de la interfaz, haga clic en el botón de opción Implementadores y encontrará las clases que implementan una interfaz en particular. Igual que la respuesta de stackexchanger anterior


0
2017-11-03 16:31



Seleccione el nombre de la clase, luego 'F4' en Eclipse (entorno de Windows)


0
2017-09-20 21:41