У меня есть приложение в виде файла JAR со многими зависимостями. По какой-то причине мне нужно декомпилировать одну из библиотек и открыть ее с помощью Eclipse. Для данного интерфейса в проекте есть способ найти класс (ы), которые его реализуют? Возможно, интерфейс был реализован в другой библиотеке, которую я еще не декомпилировал. Возможно ли это для такого рода занятий?
88
Попробуйте Ctrl+ Tпосле выбора имени класса; должен работать в перспективе Java.
источник
Вы можете «Показать иерархию типов» для элемента (щелкните правой кнопкой мыши, чтобы выбрать этот параметр, или нажмите F4 когда элемент выделен) *.
Однако в нем будут перечислены только элементы тех проектов, на которые имеется ссылка («зависимые»). Не в других.
Таким образом, если вы декомпилировали банку, и есть еще одна банка, которую вы не декомпилировали, то реализации (интерфейса) в этой банке не будут перечислены.
Кроме того, предположим, что вы декомпилировали банку как проект, и есть другой проект, который ссылается на банку, а не на декомпилированный проект, реализации в котором также не будут перечислены.
Поэтому вам нужно будет декомпилировать все jar-файлы и добавить их как проекты (и добавить ссылки через «Java Build Path»), чтобы убедиться, что все реализации в jar-файлах по вашему выбору перечислены.
* Quick type Hierarchy, ctrl + T покажет аналогичную структуру в панели типа всплывающей подсказки / автозаполнения. Но полная иерархия типов более полезна для того типа анализа, который вы собираетесь проводить.
источник
В поиске Java есть радиокнопка «Разработчики».
источник
Или щелкните правой кнопкой мыши и выберите
Quick Type Hierarchy
раскрывающееся меню расширения интерфейсов и реализации классов.источник
Ctrl + H (параметр поиска) Откройте перспективу поиска Java и введите имя интерфейса, щелкните переключатель «Реализаторы», и вы узнаете, какие классы реализуют конкретный интерфейс. То же, что и ответ от stackexchanger выше
источник
Выберите имя класса, затем F4 в Eclipse (среда Windows)
источник