数据类型
基本数据类型映射
引用数据类型映射
引用数据类型需要JNI函数进行转换后才可使用(数据都是引用类型)
//获得一维数组 的类引用,即jintArray类型
jclass intArrayClass = env->FindClass("[I");
//构造一个指向jintArray类一维数组的对象数组,该对象数组初始大小为dimion
jobjectArray obejctIntArray = env->NewObjectArray(dimion ,intArrayClass , NULL);
...//具体操作
域描述符
基本数据类型
引用数据类型 L + 类描述符 + ;
String --- > Ljava/lang/String;
类描述符
类描述符是类的完整名称(包名+类名),将原来的 . 分隔符换成 / 分隔符
jclass cls = env->FindClass("java/lang/String");
jclass cls = env->FindClass("Ljava/lang/String;");//域描述符
数组类型的描述符是[ + 类型的域描述符
int[] --- > [I
float[] ---> [F
String[] ---> [Ljava/lang/String;
方法描述符
将参数类型的域描述符按照申明顺序放入一对括号中后跟返回值类型的域描述符,规则如下: (参数的域描述符的叠加)返回类型描述符。对于,没有返回值的,用V(表示void型)表示
String test() -----> Ljava/lang/String;
int f (int i, Object object) ----> (ILjava/lang/Object;)I
void set (byte[ ] bytes) ----> ([B)V