Rob Gordon撰写的《 Essential JNI:Java native 接口(interface)》一书包含以下代码示例,可将jstring转换为C字符串:

const char* utf_string;
jboolean isCopy;
utf_string = env->GetStringUTFChars(str, &isCopy);
/* ... use string ... */
if (isCopy == JNI_TRUE) {
    env->ReleaseStringUTFChars(str, utf_string);
}

请注意,只有在ReleaseStringUTFChars为true时,它才调用isCopy

但是这本书Java Native Interface: Programmer's Guide and Specification(替代链接:http://192.9.162.55/docs/books/jni/html/objtypes.html#5161)说:



我以为这是戈登书中的错误是正确的吗?

最佳答案

是的,您的假设是正确的(您应该始终调用ReleaseStringUTFChars)。

关于java - 如果GetStringUTFChars返回了副本,您应该调用ReleaseStringUTFChars吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5859673/

10-09 22:06