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 开头 ; 结尾,中间是引用类型的全类名