Перейти к реализации интерфейса в Eclipse IDE

140

Вы знаете, как в Eclipse нажатие F3на метод приводит к его объявлению? У меня есть метод, который является частью интерфейса; щелкнув F3по нему, я естественным образом попадаю в интерфейс объявления.

Очевидно, что существует объект, реализующий этот интерфейс, и именно здесь метод фактически реализуется. Когда я нажимаю F3, я хочу перейти к реализации, а не к объявлению интерфейса. Я знаю, что реализация может быть неизвестна во время компиляции, поэтому есть ли способ для Eclipse показать мне все классы, реализующие интерфейс, чтобы я мог выбрать, какой реализованный метод просмотреть? Прямо сейчас, когда это происходит, я просто вручную ищу это, чтобы найти реализованный метод.

aeq
источник
4
Ctrl + T открывает всплывающее окно, F4 открывает окно
Стефан

Ответы:

137

Вот что я делаю:

  • В интерфейсе переместите курсор к имени метода. Нажмите F4. => Появится вид иерархии типов
  • В нижней части вида уже должен быть выбран метод. На его панели инструментов нажмите «Заблокировать представление и отобразить элементы в иерархии» (значок на панели инструментов должен быть крайним слева).
  • В верхней части представления вы можете просмотреть все реализации метода.

Процедура не очень быстрая, но дает хороший обзор.

Крис Леркер
источник
129

Ну ... ну ... Надеюсь, вы используете Eclipse Helios, потому что то, что вы просили, доступно на Helios.

Снова поместите текстовый курсор на метод и нажмите меню «Навигация» → «Открыть реализацию». Теперь, если у вас есть более одной реализации метода, вы сможете выбрать, какую реализацию открыть.

альтернативный текст

Определив привязку клавиш в «Настройки» → «Общие» → «Ключи», вы даже можете использовать эту функцию проще, но перед тем, как сделать это, посмотрите, достаточно ли быстр этот ярлык для вас.

Нажмите Ctrl + щелкните и удерживайте. Теперь наведите указатель мыши на тот же метод. Тадам… у тебя будет выбор.

альтернативный текст

Если вы выберете «Открытая реализация», вы получите тот же выбор, что и раньше.

Нанда
источник
3
Фантастика. Это решает то, что меня всегда беспокоило насчет затмения. :) Большое спасибо.
brimborium
Отличный совет! но также вы можете просто навести курсор и нажать ctrl, затем выбрать из раскрывающегося списка [в eclipsexygen] .... Я имею в виду, что вам, возможно, сейчас не нужно удерживать ctrl + щелчок.
старый монах
74

Нажмите Ctrl+ Tна имени метода (а не F3). Это дает иерархию типов в виде всплывающего окна, поэтому это немного быстрее, чем использование F4и представление иерархии типов.

Кроме того, когда это сделано для метода, подтипы, которые не реализуют / не переопределяют метод, будут выделены серым цветом, и когда вы дважды щелкните класс в списке, он приведет вас прямо к методу в этом классе.

Джонатан
источник
2
Также отлично работает с клавиатурой. Просто CTRL + T и используйте клавиши со стрелками для навигации. Нажмите Enter, чтобы перейти к реализации.
Это Лето,
54

Значительно повысится производительность, если вы добавите привязку клавиши Alt+ F3к функции открытой реализации и просто используйте ее F3для перехода к интерфейсам, а Alt+ - F3для перехода к реализациям.

Привязка клавиш открытой реализации

Лукаш Франковски
источник
2
Отличный совет! Спасибо. Просто грустно, что eclipse ищет только один уровень иерархии.
Snicolas
Это решение сработало для меня. Многие другие (особенно плагины) этого не сделали.
Nelda.techspiress
В Eclipse Neon используется Alt + F3 Incremental Find, вместо этого я выбрал Alt + I
user7294900
13

Выделите интерфейс и используйте Ctrl+, Tчтобы открыть «Иерархию быстрых типов».

Роланд
источник
13
ctrl + mouse hover + click "Open Implementation"

На ctrl + hover, вы увидите следующее меню:

введите описание изображения здесь

Проверено на Eclipse Mars.2 (4.5.2)

тбраун
источник
3

Вот что я делаю:

Я нажимаю команду (на Mac, возможно, контрольную на ПК), а затем наводю курсор на метод или класс. Когда вы это сделаете, появится всплывающее окно с вариантами «Открыть объявление», «Открыть реализацию», «Открыть тип возврата». Затем вы можете щелкнуть то, что хотите, и Eclipse предоставит вам прямо здесь. Я считаю, что это работает для версии 3.6 и выше.

Я думаю, он так же быстр, как и IntelliJ.

Мангуста
источник
2

См. В eclipse нажатие ctrl приводит к объявлению метода, который я щелкнул. Для интерфейсов с одной реализацией, как я могу напрямую перейти к этой реализации? для некоторых альтернативных решений.

  • В любом случае, я думаю, вы можете искать что-то вроде этого:

http://eclipse-tools.sourceforge.net/implementors/

Махджу
источник
Спасибо, это тоже было полезно. По этой ссылке вы также можете щелкнуть метод, удерживая нажатой клавишу cntrl, а затем выбрать «Открыть реализацию». Это даже быстрее.
aeq
0

Если вы действительно хотите ускорить навигацию по коду, вы можете взглянуть на nWire для Java . Это плагин для исследования кода для Eclipse. Вы можете мгновенно увидеть все связанные артефакты. Итак, в этом случае вы сосредоточитесь на вызове метода и сразу увидите все возможные реализации, объявления, вызовы и т. Д.

Звикико
источник
0

Лучшим решением будет Ctrl+ Alt+ I.

компьютерный фрик
источник