0
全局引用我不知道这意味着什么:删除的JNI
virtual ~Optimizer() {
JNIEnv *env = getJNIEnv();
env->DeleteGlobalRef(mJavaOptimizer);
mJavaOptimizer = 0;
}
什么让我困惑的是,我们删除全局引用,然后我们将其设置为0。 不会删除它就够了吗?为什么赋值为0部分?
由于
全局引用我不知道这意味着什么:删除的JNI
virtual ~Optimizer() {
JNIEnv *env = getJNIEnv();
env->DeleteGlobalRef(mJavaOptimizer);
mJavaOptimizer = 0;
}
什么让我困惑的是,我们删除全局引用,然后我们将其设置为0。 不会删除它就够了吗?为什么赋值为0部分?
由于
在该代码中,在C++析构函数时,它不具有实际用途。这只是一种编程模式。
在许多情况下,变量在保存有效值之前或之后都可访问(可见)。在那段时间内,它最好保存一个已知的值,以便能够以一种确定的方式(例如,空指针vs坏指针)可靠地捕获值(一个标记值)和/或其误用。
将变量设置为标准无效值也可用作操作刚刚使先前值无效的注释,从读取立即代码可能不明显。
它像你说的我猜想的那样扮演着更多的评论角色,因为我发现类似的代码可以做同样的事情,但最终没有设置为0。以前的同事我猜不管出于什么原因... – user2381422