IntelliJ IDEA: есть ли способ перечислить все интерфейсы, реализованные классом и его родителями?

Я работаю над относительно сложным Java-проектом, в котором классы обычно имеют четыре или пять предков до Object. Учитывая такой класс, например D в такой иерархии: Object > A > B > C > D, я хотел бы знать, какие все интерфейсы он эффективно реализует. То есть мне также интересно увидеть, что D реализует, скажем, Serializable, даже если это объявлено только в объявлении класса B, и даже когда D фактически не реализует ни один из методов, указанных в интерфейсе (естественно, если говорить о Serializable).

Некоторые потенциальные источники этой информации, которые я пробовал, включают:

  • используя «Группировать по типу» в окне «Структура», но при этом не будут отображаться пустые интерфейсы (= интерфейсы без методов) и
  • окно «Иерархия» - но оно не включает интерфейсы при просмотре иерархии для класса.

Есть ли способ получить эту информацию в IDEA, не открывая файлы всех классов-предков рассматриваемого класса?


person mkorvas    schedule 21.02.2017    source источник
comment
Не уверен насчет InteliJ, но вы можете сделать это одной строкой кода stackoverflow.com/questions/6616055/   -  person Egor Zhuk    schedule 21.02.2017
comment
см. также почти повторяющийся stackoverflow.com/questions/3990781/   -  person elonderin    schedule 14.07.2021


Ответы (2)


Можешь попробовать

  • Откройте файл класса.
  • Нажмите Ctrl + H. (или просто перейдите в окно проекта и нажмите клавиши.)
  • Как видите, справа появляется диаграмма иерархии.
  • Попробуйте переключиться на кнопку Иерархия супертипов (обведена красным на изображении ниже). :))

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

person Supun Wijerathne    schedule 22.02.2017
comment
Спасибо, это именно то, что я искал! - person mkorvas; 22.02.2017

Если вас устраивает представление UML, используйте

Нажмите ⌥⇧⌘U или ⌥⌘U на Mac

Нажмите Ctrl+Shift+Alt+U или Ctrl+Alt+U в раскладке Windows по умолчанию

См. https://www.jetbrains.com/help/idea/2016.3/viewing-class-hierarchy-as-a-class-diagram.html

person Martin Linha    schedule 21.02.2017
comment
У меня вроде как-то нет такой возможности. У меня IDEA v2016.2.5, но эта функция уже должна быть там: jetbrains.com/help/idea/2016.2/. Однако ярлыки не работают (я использую Linux), и я не вижу эту опцию в контекстном меню. Если это не вызвано отсутствием какого-либо плагина, я предполагаю, что это потому, что этот проект на самом деле представляет собой смесь Java и Groovy, что может не поддерживаться функциями построения диаграмм. - person mkorvas; 22.02.2017