Я работаю над проектом анализа байт-кода, для которого я использую ASM. Все идет хорошо, я могу успешно анализировать, получать информацию о классах и методах.
Но я застрял в понимании представления байт-кода для дженериков. Вот один пример из java.util.list
, когда я использую visitMethod
из ClassVisitor
для печати информации, это то, что я получаю для одной из сигнатур метода:
(ILjava/util/Collection<+TE;>;)Z
Вот пытаюсь разобрать по порядку и разобраться в аргументах метода:
I
означает целое числоLjava/util/Collection
означает, что это аргумент типаCollection
Но я застрял на типе дженериков, т.е. <+TE>
и т. д. Кто-нибудь может мне помочь? Я пытался искать, но не получил достаточно информации. Если у кого-нибудь есть список имен байт-кодов, не могли бы вы поделиться со мной?