使用JNI
时我想弄清楚,如果给出任意jobject
,是否可以确定它是LocalRef
还是GlobalRef
?
不幸的是,NewLocalRef
和NewGlobalRef
都返回相同的jobject
类型,即使两者都需要以不同的方式发布。
如果这是不可能的,那么至少可以假设所有jobject
作为参数传递到直接从Java调用的本机函数,或者从JNI调用(其他NewGlobalRef
)返回所有LocalRef
s。
我找不到任何文件来确认该假设是有效的,尽管它似乎确实存在于Oracle Java和Android上。
答案 0 :(得分:1)
至少可以假设所有jobjects都作为参数传递给直接从Java调用的本机函数
这些始终是LocalRefs。
或从JNI调用返回(其他NewGlobalRef)都是LocalRefs。
方法返回的是它。你无法做出任何假设。