web-dev-qa-db-de.com

Каква е разликата между йерархията на повикванията и намирането на позовавания затъмнение?

Бях объркан, когато използвах тези две команди в EclipseCtrl+Shift+GèCtrl+Alt+Hи двамата връщат същите резултати.

сценарий:

Sie können "findUsage" aufrufen.

Примерна класа

enter image description here

Изход за йерархия на повикванията (Ctrl+Alt+H).

enter image description here

Намерете препратки (Ctrl+Shift+G)) изход

enter image description here

И двете показват същите резултати. Може ли някой да знае каква е разликата между тези две команди?

35
kannanrbk

"Referenzen suchen" zeigt Ihnen alle direkte Anrufer der ausgewählten Methode. "Anrufhierarchie" zeigt dagegen auch die Anrufer dieser direkten Anrufer und die Anrufer dieser, ... und so weiter.

Die Ausgabe ist also nur dann identisch, wenn der direkte Aufrufer der von Ihnen gewählten Methode selbst keinen Aufrufer hat. Probieren Sie beide Befehle auf einer größeren Code-Basis aus, und Sie werden sofort den Unterschied erkennen, wie in diesem Screenshot:

Call hierarchy

Wenn Sie sich fragen, warum es zwei solche Funktionen gibt, wenn "Referenzen suchen" im Wesentlichen nur eine Teilmenge der "Anrufhierarchie" ist: Das Suchen von Referenzen funktioniert sehr schnell, sodass Sie sie jederzeit verwenden können, ohne auf Ergebnisse warten zu müssen. Die Aufrufhierarchie hingegen benötigt mehr Rechenzeit und kann daher den Kodierungsworkflow unterbrechen.

45
Bananeweizen
  • Ctrl+Shift+G: Справка в работното пространство. Показва само препратки избрания клас или метод или променлива в изходния код.
  • Ctrl+Alt+H: Покана H ierarchy. Той показва всички йерархия до коренната класа.
0
Premraj