不同的JNI调用的相同参数是否具有相同的值?
问题描述:
例如,有同一个对象的两种不同的JNI方法不同的JNI调用的相同参数是否具有相同的值?
class JavaObj{
public native void methodA();
public native void methodB();
}
的JNI头这些方法可能是
JNIEXPORT void JNICALL Java_JavaObj_methodA(JNIEnv * pEnv, jobject javaobj);
JNIEXPORT void JNICALL Java_JavaObj_methodB(JNIEnv * pEnv, jobject javaobj);
因此,它是安全的假设,pEnv和javaobj的值在这两个独立的JNI调用中是否是相同的?
答
当然不是。 JNIEnv *可以改变JNI调用之间的任何时间,并且你可以有你的类的多个实例。