Используя рефлексию, вы можете получить практически все, что связано с классом.Вы можете получить все объявленные методы, поля и классы (и, возможно, даже больше), но я не смог найти способ поразмышлять о методе, чтобы узнать, какие классы может использовать этот метод.
По сути, я хотел бы выяснить все зависимости от других классов, которые есть у данного класса.
Пример: учитывая следующий код:
import com.yada.yada.yada.SomeClass
public class MyClass
{
public MyClass
{
new SomeClass();
}
}
Как я могу узнать, что MyClass использует SomeClass в своем конструкторе?
Я пытался придумать, как получить все операторы импорта, определенные в файле класса, но я также не смог найти ничего подобного.Но, предполагая, что есть способ как-то выкопать все операторы импорта, определенные в файле классов, как можно узнать о классах, определенных в том же пакете, которые не требуют оператора импорта?
РЕДАКТИРОВАНИЕ:
Сценарий: цель состоит в том, чтобы отправить байт-код этого класса (MyClass) другому процессу.Затем этот другой процесс принимает байт-код и загружает класс (MyClass) с помощью загрузчиков классов и так далее.Проблема в том, что когда я пытаюсь создать и запустить экземпляр MyClass в другом процессе, он завершается неудачно, потому что не может найти определение SomeClass.
Если бы SomeClass был членом MyClass, это не было бы проблемой, но, поскольку единственная ссылка на него была в методе, нет способа добраться до него через отражение?