Вам не нужно делать это, анализируя файл Java самостоятельно! Java уже содержит способ получения информации о своих собственных классах, методах и пакетах: она называется отражение .
Посмотрите на класс java.lang.Class . Каждый экземпляр этого класса представляет определенный класс Java и содержит методы для возврата имени класса, пакета, в котором он находится, методы, которые он содержит, и много дополнительной информации.
Также стоит обратить внимание на пакет java.lang.reflect , поскольку некоторые методы Class
возвращают типы из этого пакета. Пакет содержит классы для представления таких вещей, как методы, типы, поля и т. Д.
Чтобы получить Class
экземпляр вашего класса Test
, вы можете использовать следующий код:
Class<?> testclass = Class.forName("tspec.test.Test");
Возвращает класс неизвестного типа, что означает вопросительный знак в угловых скобках, если вы не знакомы с обобщениями. Почему тип экземпляра класса неизвестен, потому что вы указываете имя класса со строкой, которая анализируется во время выполнения. Во время компиляции Java не может быть уверена, что строка, переданная в forName
, даже вообще представляет действительный класс.
Однако, testclass
, как определено выше, подойдет для получения имени класса, методов и содержащего пакета.