JNI GetFieldID和GetMethodID 所需签名参数
调用JNI的GetMethodID函数获取一个jmethodID时,需要传入一个方法名称和方法签名,方法名称就是在Java中定义的方法名,方法签名的格式为:(形参参数类型列表)返回值。
1。基本类型签名
Java | Native | Signature |
byte | jbyte | B |
char | jchar | C |
double | jdouble | D |
float | jfloat | F |
int | jint | I |
short | jshort | S |
long | jlong | J |
boolean | jboolean | Z |
void | void | V |
2.引用数据类型的转换.
Java | Native | Signature |
所有对象 | jobject | L+classname +; |
Class | jclass | Ljava/lang/Class; |
String | jstring | Ljava/lang/String; |
Throwable | jthrowable | Ljava/lang/Throwable; |
Object[] | jobjectArray | [L+classname +; |
byte[] | jbyteArray | [B |
char[] | jcharArray | [C |
double[] | jdoubleArray | [D |
float[] | jfloatArray | [F |
int[] | jintArray | [I |
short[] | jshortArrsy | [S |
long[] | jlongArray | [J |
boolean[] | jbooleanArray | [Z |
获取签名方式:
一、自己拼写
例如:
方法:int (int param);
签名:(I)I
二、命令行生成
1、使用javac,生成对应java文件的class文件;
2、使用 javap -s -p 命令获取对应签名信息,如图: