Jni方法签名

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中定义的方法

名,方法签名的格式为:(形参参数类型列表)返回值。

image.png
image.png

格式是:(参数列表)返回值 基本数据类型用表上面大写字母表示,数据的话用[表示一维数组,[[表示二维数组,对象类型需要用全限定名前面用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

你可能感兴趣的:(Jni方法签名)