2017-02-21 40 views
5

Pracuję nad stosunkowo złożonym projektem Java, w którym klasy zwykle mają czterech lub pięciu przodków przed Object. Biorąc pod uwagę taką klasę, np. D w takiej hierarchii: Object > A > B > C > D, chciałbym wiedzieć, co wszystkie interfejsy skutecznie implementuje. To znaczy, jestem również zainteresowany widząc, że D implementuje, powiedzmy, , nawet jeśli jest to zadeklarowane tylko w deklaracji klasy B i nawet gdy D nie implementuje żadnej z metod określonych przez interfejs (naturalnie, jeśli mówimy o Serializable).IntelliJ POMYSŁ: Czy istnieje sposób na listowanie wszystkich interfejsów zaimplementowanych przez klasę i jej rodziców?

kilka potencjalnych źródeł informacji próbowałem to:

  • używając „Grupa poprzez definiowanie typu” w oknie Structure - ale to nie pokaże pustych interfejsów (= interfejsy bez metod) oraz
  • Okno "Hierarchia" - ale nie obejmuje interfejsów podczas przeglądania hierarchii dla klasy.

Czy istnieje sposób uzyskania tych informacji w IDEA bez konieczności otwierania plików wszystkich klas przodków danej klasy?

+0

Nie wiesz o InteliJ ale można to zrobić w jednej linii kodu http://stackoverflow.com/questions/6616055/get-all-derived-interfaces-of -a-class –

Odpowiedz

2

Można spróbować

  • Otwórz plik klasy.
  • Naciśnij Ctrl + H. (lub po prostu poruszaj się po oknie projektu i naciśnij klawisze.)
  • Możesz zobaczyć Hierarchię Diagram pojawia się po prawej stronie.
  • Przełącz się na Hierarchia Supertypes (kółko na czerwono na dole obrazu). :))

enter image description here

+1

Dzięki, właśnie tego szukałem! – mkorvas

1

Jeśli są w porządku z reprezentacją UML, a następnie użyć

Naciśnij ⌥⇧⌘U lub ⌥⌘U na mac

Prasa Ctrl+Shift+Alt+U lub Ctrl+Alt+U na domyślne okien keymap

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

+0

Wydaje mi się, że nie mam tej opcji. Mam IDEA v2016.2.5, ale ta funkcja powinna już tam być: https://www.jetbrains.com/help/idea/2016.2/viewing-class-hierarchy-as-a-class-diagram.html. Skróty jednak nie działają (jestem na Linuksie) i nie widzę tej opcji w menu kontekstowym. Jeśli nie jest to spowodowane brakującą wtyczką, domyślam się, że jest to mieszanka Java i Groovy, która może nie być obsługiwana przez funkcję diagramowania. – mkorvas