引用型数据类型的操作:
jstring:
新建:
(C code-Unicode)
jstring javaString = (*env)->NewString(env, "hello world");(创建时可能返回NULL并报异常)
(C code-UTF8)
jstring javaString = (*env)->NewStringUTF(env, "hello world");(创建时可能返回NULL并报异常)
修改:无法修改。
类型转换 to C string:
(C code-Unicode)
jbyte* str = (*env)->GetStringChars(env, javaString, &isCopy);
(C code-UTF8)
jbyte* str = (*env)->GetStringUTFChars(env, javaString, &isCopy);
空间释放 for C string:
(C code-Unicode)
(*env)->ReleaseStringChars(env, javaString, str);
(C code-UTF8)
(*env)->ReleaseStringUTFChars(env, javaString, str);
数组:
新建:<Type> -> int , char, ...
(C code)
jintArray javaArray = (*env)->New<Type>Array(env, 10); (创建时可能返回NULL并报异常)
获取JAVA数组的拷贝并转换为C数组:GetIntArrayRegion
获取C数组的拷贝并转换为JAVA数组:SetIntArrayRegion
JAVA数组转换为C数组:GetIntArrayElements
C数组转换为JAVA数组:无,