Pra*_*mha 12 java bytecode bytecode-manipulation java-bytecode-asm
我正在开发一个字节码分析项目,我正在使用ASM.一切都很顺利,我能够成功解析,获得类和方法信息.
但我坚持理解泛型的字节码表示.下面是一个例子java.util.list,当我使用visitMethod从ClassVisitor打印的信息,这是我得到的方法的签名之一:
(ILjava/util/Collection<+TE;>;)Z
Run Code Online (Sandbox Code Playgroud)
在这里,我试图逐个反汇编并理解方法的参数:
I 代表intLjava/util/Collection 代表它是一种类型的论证 Collection但我被困在仿制药类型<+TE>等等.任何人都可以指导我吗?我试图搜索但没有得到足够的信息.如果有人有字节码名称列表,请分享一下吗?
Ren*_*ink 12
该+代表通用extends,而TE意味着是一种变种E
因此在源代码中它看起来像:
Collection<? extends E> -> Ljava/util/Collection<+TE;>
Run Code Online (Sandbox Code Playgroud)
请参阅asm用户指南部分4.1.1泛型 - >元数据
| 归档时间: |
|
| 查看次数: |
2495 次 |
| 最近记录: |