java - "descriptor"和 "signature"有什么区别?

标签 java terminology signature descriptor

我现在正在使用 ASM(Java 字节码检测库)。要检索给定方法的签名,有一个名为“desc”的字段。我猜这是“descriptor”的缩写,但为什么不命名为“signature”呢? “描述符”和“签名”有区别吗?

最佳答案

在 asm 上下文中,您关心内部名称、方法描述符、类型描述符和签名。节号来自 asm doc .

2.1.2 内部名称

“类的内部名称就是 此类的完全限定名称,其中点替换为斜杠。”

com/snark/Boojum

2.1.3 类型描述符

[[Ljava/lang/Object;

2.1.4 方法描述符

方法描述符是描述参数的类型描述符列表 类型和方法的返回类型,在单个字符串中。

int[] m(int i, String s) becomes (ILjava/lang/String;)[I

4.1。泛型(用于签名)

“出于向后兼容的原因,关于泛型类型的信息不 存储在类型或方法描述符中(在引入之前很久就定义了 Java 5 中的泛型),但在称为类型、方法的类似构造中 和类签名。”

这个 Java:

List<List<String>[]>

成为这个签名:

Ljava/util/List<[Ljava/util/List<Ljava/lang/String;>;>;

关于java - "descriptor"和 "signature"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7526483/

相关文章:

html - Gmail 在不应该的时候将电子邮件签名居中

compiler-errors - F#签名了解: “the -> operator and Compiler Errors”

java - 您应该在生命周期的哪个部分初始化服务使用的 fragment 中的对象?

java - 遗传算法-收敛性

graph - 是否有像图这样的树的名称,其中的节点可以有多个父节点,但仍然只有上面的一级

java - 什么是本地对等体?

PHP 为 Blob 存储创建工作 Azure 签名

java - Bug 在 SDK 1.5 下运行 Android 教程 HelloTabWidget : "setCurrentTag(getIntent())"

java.net.绑定(bind)异常 : Address already in use: JVM_Bind

graph-theory - 每个节点都连接到每个其他节点的图如何表示?