0

与我一起工作时,JNI我试图弄清楚,如果给定一个任意的jobject,是否可以确定它是 aLocalRef还是GlobalRef

不幸的是,两者都NewLocalRef返回NewGlobalRef相同的jobject类型,即使两者都需要以不同的方式发布。

如果这是不可能的,至少可以假设所有jobjects 要么作为参数传递给直接从 Java 调用的本机函数,要么从 JNI 调用返回(其他NewGlobalRef)都是LocalRefs。

我找不到任何文档来确认该假设是有效的,尽管它似乎肯定是在 Oracle Java 和 Android 上。

4

1 回答 1

1

至少可以假设所有作业都作为参数传递给直接从 Java 调用的本机函数

这些总是 LocalRefs。

或从 JNI 调用(除 NewGlobalRef 之外)返回的都是 LocalRef。

方法返回什么取决于它。你不能做任何假设。

于 2013-09-14T23:00:24.587 回答