调用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 命令获取对应签名信息,如图: