🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
给出两个局部引用,全局应用或者弱全局引用,你可以使用IsSameObject函数检查是否这两个引用指向相同的对象,例如: (*env)->IsSameObject(env, obj1, obj2) 如果obj1和obj2指向相同的对象,就会返回JNI_TRUE(or 1),否则就会返回JNI_FALSE(or 0). JNI中的一个空引用指向Java虚拟机中的NULL对象,对于局部引用和全局引用,你可以使用 (*env)->IsSameObject(env, obje, NULL) 或者 obj == NULL 来判断它是否指向一个空对象。 对于弱全局引用,规则会有些不同,NULL弱全局引用指向NULL对象。IsSameObject,对于弱全局引用有特殊的使用。你可以使用IsSameObject来判断一个非空的弱全局引用是否指向一个有效的对象。假设wobj是一个非空的弱全局引用,如下调用 (*env)->IsSameObject(env,wobj,NULL) 如果wobj指向一个已经被回收的对象,则返回JNI_TRUE,否则,返回JNI_FALSE.