签名映射如下
类型签名 | Java类型 |
V | void |
Z | boolean |
B | byte |
C | char |
S | short |
I | int |
J | long |
F | float |
D | double |
Ljava/lang/Object; | java.lang.Object |
[type | type[] |
比如,我们一个int的成员变量,其签名就是I,double的类型就是D,那么String的签名是什么呢?String的包名是java.lang.String,于是其签名是"Ljava/lang/String; "。如果自定义了一个类:com.example.Person,那么该类的签名就是"Lcom/example/Person; "注意,后面有个分号。另外,数组type[]的签名是[type,比如int[]的签名是[I
方法签名
方法描述符由两部分组成,参数描述+返回类型描述,该两部分描述均由签名形式给出,格式是 (参数描述)返回类型描述。
比如这个方法的签名是:()I
public int getInt()
这比较好理解,如果返回类型是空呢,那就用V来表示,
比如
public void method(String string)
的签名是(Ljava/lang/String;)V