java 的方法的签名,实际就表示方法的参数和返回值,比如:
//获取类中的方法,最后一个参数是方法的签名,通过javap -s -p 文件名可以获得
jmethodID mid = env->GetMethodID(cls, "main_jni","(Ljava/lang/String;I)Ljava/lang/String;");
里面的签名,对应的 "(Ljava/lang/String;I)Ljava/lang/String;" 对应的方法是:
public String main_jni(String args_in, int i) {
return "---main_jni----";
}
再看几个例子:(左边是方法,右边是对应的签名)
public void test1(){} test1()V
public void test2(String str) test2(Ljava/lang/String;)V
public int test3(){} test3()I
其中,签名中的特殊字符/字母含义:
特殊字符 | 数据类型 | 特殊说明 |
V | void | 一般用于表示方法的返回值 |
Z | boolean | |
B | byte | |
C | char | |
S | short | |
I | int | |
J | long | |
F | float | |
D | double | |
[ | 数组 | 以[开头,配合其他的特殊字符,表示对应数据类型的数组,几个[表示几维数组 |
L | 全类名; | 引用类型 以 L 开头 ; 结尾,中间是引用类型的全类名 |