1、GetFieldID是得到java类中的参数ID,GetMethodID得到java类中方法的ID,它们只能调用类中声明为 public的参数或方法。
举例说明:
jclass c = (*env)->FindClass(env,"com/camera/webcam/Test");
jfieldID width_id = (*env)->GetFieldID(env, c, "width", "I");
第一个参数:JNI接口对象;第二个参数:Java类对象;第三个参数:参数名(或方法名);第四个参数:该参数(或方法)的签名。
2、方法签名
调用JNI的GetMethodID函数获取一个jmethodID时,需要传入一个方法名称和方法签名,方法名称就是在Java中定义的方法
名,方法签名的格式为:(形参参数类型列表)返回值。
格式是:(参数列表)返回值 基本数据类型用表上面大写字母表示,数据的话用[表示一维数组,[[表示二维数组,对象类型需要用全限定名前面用L表示是对象用分号结束例如LJava/lang/String;没有返回值写V
举例
void f()->()V
void f(String)->(LJava/lang/String;)V
String f(byte[])->([B)LJava/lang/String;
void f(int,int)->(II)V