Предлагаемое решение состоит в том, чтобы использовать Thread.currentThread().getStackTrace()
для получения текущей трассировки вызывающих абонентов.
Однако вы хотите получить эту информацию не для выполняемого в данный момент метода, а для любого метода любого класса. Это не может быть сделано легко. Я думаю, что вы должны проверить все классы на пути к классам с помощью утилиты байт-кода и сопоставить инструкции вызова. То, на что вы будете тратить слишком много времени, и я уверен, что в этом нет необходимости, если только вы не разрабатываете IDE.
В любом случае, вы можете получить источники Eclipse или NetBeans и посмотреть, как они там реализованы.