如果应该返回布尔值(本机类型jboolean)的JNI本机函数返回的值既不是JNI_FALSE(0)也不是JNI_TRUE(1),那么它是否定义了Java应该如何解释该值?
使用两个不同版本的Java,我发现在从类似这样的本机函数返回后出现了一些奇怪的事情:
JNIEXPORT jboolean JNICALL
Java_Class_function(JNIEnv* env, jobject obj)
{
return 2;
}
答案 0 :(得分:3)
这是未定义的行为。不要这样做。