Как найти, какие классы реализуют определенный интерфейс в Eclipse? - PullRequest
82 голосов
/ 12 сентября 2011

У меня есть приложение в виде файла JAR со многими зависимостями. По какой-то причине мне нужно декомпилировать одну из библиотек и открыть ее с помощью Eclipse. Для данного интерфейса в проекте, есть ли способ найти класс (ы), который его реализует? Может случиться так, что интерфейс был реализован в другой библиотеке, которую я еще не декомпилировал. Возможно ли это сделать для такого рода занятий?

Ответы [ 7 ]

107 голосов
/ 12 сентября 2011

Щелкните правой кнопкой мыши по интерфейсу и выберите «Открыть иерархию типов».Затем нажмите «Показать иерархию подтипов».

43 голосов
/ 12 сентября 2011

Попробуйте Ctrl + T после выбора имени класса; должен работать в перспективе Java.

11 голосов
/ 12 сентября 2011

Вы можете «Показать иерархию типов» на элементе (щелкните правой кнопкой мыши, чтобы выбрать этот параметр, или нажмите F4 , когда элемент выделен) *.

Однако при этом будут перечислены только те элементы в тех проектах, на которые есть ссылки («зависимые»). Не в других.

Так что, если вы декомпилировали jar-файл и есть еще один jar-файл, который вы не декомпилировали, то реализации (интерфейса) в этом jar-файле не будут перечислены.

Также предположим, что вы декомпилировали jar как проект, и есть другой проект, который ссылается на jar, а не декомпилированный проект, реализации которого также не будут перечислены.

Таким образом, вам придется декомпилировать все jar-файлы и добавлять их в качестве проектов (и добавлять ссылки через «Java Build Path»), чтобы убедиться, что все реализации в jar-файлах по вашему выбору перечислены.

* Быстрый тип Hierarchy, ctrl + T покажет похожую структуру на панели всплывающих подсказок / автозаполнения. Но полная иерархия типов более полезна для того типа анализа, который вы собираетесь выполнять.

7 голосов
/ 28 февраля 2014

В Java-поиске есть переключатель "Реализаторы".

1 голос
/ 12 сентября 2011

Или щелкните правой кнопкой мыши и выберите Quick Type Hierarchy для раскрывающегося меню расширения интерфейсов и реализации классов.

0 голосов
/ 21 сентября 2017

Выберите имя класса, затем «F4» в Eclipse (среда Windows)

0 голосов
/ 03 ноября 2015

Ctrl + H (опция поиска) Откройте перспективу Java Search и введите имя интерфейса, нажмите кнопку-переключатель «Разработчики», и вы увидите, какие классы реализуют определенный интерфейс.То же, что ответ от стека обменника выше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...