Как добавить к отражающей природе Java для печати тела метода?
Боюсь, со значительным трудом.
Для начала, исходный код, скорее всего, будет недоступен для работающей программы. Как правило, разработчики не включают исходный код в двоичные JAR-файлы. (И даже если они это сделают, нет гарантии, что они будут «настоящими» источниками.)
Обычно можно получить байт-коды для класса, преобразовав FQN для класса в файл байт-кода и используя загрузчик классов для загрузки файла в качестве потока ресурсов. Но не гарантируется, что получаемые таким образом байт-коды будут такими же, как и загруженные. (Некоторые загрузчики классов связываются с байт-кодами по разным причинам.)
Предполагая, что вы можете получить настоящие байт-коды, последним шагом будет либо отобразить их в необработанном виде, либо разобрать или декомпилировать их во что-то более читаемое. Вы должны иметь возможность использовать javap
для разборки, но декомпиляция повлечет за собой использование стороннего продукта. Конечно, декомпилированный код будет значительно отличаться от исходного кода, и, если байт-коды были запутаны, их исходный код будет в значительной степени нечитаемым.