Как найти, где абстрактный абстрактный метод реализован в Eclipse?
Я хотел бы найти, где реализован абстрактный метод, в каком классе? Есть ли ссылка в Eclipse, например иерархия вызовов/ открытая декларация или что-то подобное, что показывает, где реализован метод?
Ответы
Ответ 1
Быстрые методы:
-
Удерживайте Ctrl, наведите указатель мыши на имя метода и выберите "Открыть реализацию".
-
Нажмите имя метода и нажмите Ctrl T.
-
Щелкните правой кнопкой мыши имя метода → "Иерархия быстрого типа".
Подробнее о навигации см. сообщение от ADTC.
Ответ 2
Отличные ответы здесь! Я нашел дополнительный трюк, чтобы быстро перейти от реализации к реализации.
Весьма странно, что Eclipse использует временное всплывающее окно, чтобы показать "Типы, реализующие или определяющие" Class.method() "вместо постоянного представления, которое может быть привязано к сторонам.
Преимущество этого всплывающего окна заключается в том, что при нажатии на тип реализации вы принимаете напрямую в реализацию метода. недостаток этого всплывающего окна заключается в том, что он закрывается, как только вы это делаете, и нет возможности связать его навсегда.
Иерархия типов показывает тот же список типов реализации (поскольку они являются подклассами абстрактного класса). Так как это точка зрения, она может быть закреплена постоянно сбоку. Однако, если вы дважды щелкните здесь имя типа, вы попадаете в строку объявления типа. Вы должны сами найти реализацию абстрактного метода.
Кроме того, вам не нужно, со следующим трюком:
- Щелкните правой кнопкой мыши на абстрактном методе и выберите "Иерархия типов типов". 1 В представлении "Иерархия типов" вы заметите следующее:
- Все подтипы абстрактного типа класса перечислены в основном списке (P). 2
- Все члены абстрактного класса перечислены во вторичном списке (S). 3
- В вторичном списке выбран абстрактный метод, на который вы щелкнете правой кнопкой мыши. 4
- Щелкните по кнопке Lock View и Show Members in Hierarchy (1) над дополнительным списком.
- Выбранный метод и его реализации будут перечислены в основном списке под каждым из подтипов, а также с родительским типом.
Теперь вы можете быстро перейти между реализациями, щелкнув или дважды щелкнув по методам, перечисленным в основном списке.
![Screenshot indicating various parts mentioned]()
1 Вы также можете нажать имя метода и нажать F4.
2 Если они не указаны в списке, нажмите либо одну из Показать иерархию типов (2), либо покажите иерархию подтипов (3) над списком.
3 Если нет вторичного списка, нажмите "Меню просмотра" (4), выберите "Макет" > [любой параметр, отличный от иерархии]. < бр /" > 4 Если он не выбран, просто нажмите на него, чтобы выбрать его.
Ответ 3
Если вы Ctrl + mouse hover
над методом, вы можете увидеть всплывающее окно, в котором вы можете выбрать из массива параметров, а один из них - "Open Implementation". Если вы щелкнете, вам будет представлен список всех реализаций.
Он также может использоваться для просмотра объявления и/или супер-реализации, поэтому он очень полезен.
Если у вас есть курсор над методом, вы можете просто нажать Ctrl + T
для того же эффекта.
Если вы хотите отобразить результаты в представлении "Тип иерархии", используйте клавишу F4
.
Ответ 4
Для этого можно использовать представление TypeHierarchy. Здесь приведен пример представления иерархии типов для абстрактного класса рамки Spring FrameworkServlet:
![enter image description here]()
В левой панели вы увидите дерево наследования классов. Значок "A" рядом с именем класса на левой панели указывает, что FrameworkServlet является абстрактным классом. На правой панели выделенного метода doService (запрос, ответ) также имеет значок "A" , указывающий, что это абстрактный метод.
Теперь, если мы нажмем на класс DispatcherServlet, который является конкретным (а не абстрактным) классом, вы увидите следующее:
![enter image description here]()
В этом случае метод doService DispatcherServlet не имеет значка "A" и вместо него имеет треугольник вверх, указывая, что он переопределяет метод суперкласса.