gpt4 book ai didi

java - JNI 返回 Java 对象,返回本地引用可以吗,还是必须是全局的?

转载 作者:行者123 更新时间:2023-11-27 23:38:34 30 4
gpt4 key购买 nike

<分区>

假设在 JNI 方法中我想返回一个 Java 字符串(或任何其他 Java 对象)。返回的对象可以是在该方法中创建的本地引用,还是应该将返回值转换为全局引用?

简单的例子:

extern "C"
JNIEXPORT jstring JNICALL Java_some_package_SomeObj_getStringTest(JNIEnv *env, jclass obj)
{
return env->NewString("Test", 4); // OK to return local reference?
}

或者应该是:

extern "C"
JNIEXPORT jstring JNICALL Java_some_package_SomeObj_getStringTest(JNIEnv *env, jclass obj)
{
jstring str = env->NewString("Test", 4);
return env->NewGlobalRef(str); // Must return a global reference?
}

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com