java - 返回既不是 JNI_FALSE 也不是 JNI_TRUE 的 jboolean 的 JNI native 方法

标签 java java-native-interface boolean

如果应该返回 boolean 值( native 类型 jboolean)的 JNI native 函数返回的值既不是 JNI_FALSE (0) 也不是 JNI_TRUE (1),它是否定义了 Java 应如何解释该值?

对于两个不同版本的 Java,我在从执行以下操作的 native 函数返回后观察到了一些奇怪的情况:

JNIEXPORT jboolean JNICALL
Java_Class_function(JNIEnv* env, jobject obj)
{
    return 2;
}

最佳答案

这是未定义的行为。不要这样做。

关于java - 返回既不是 JNI_FALSE 也不是 JNI_TRUE 的 jboolean 的 JNI native 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262762/

相关文章:

c# - Math.Random 算法

java - 为什么 Gson 中的 TypeToken 构造如此奇怪?

c++ - 如何在android项目中使用NDK?

在 IE10 中重新加载另一个框架时,Java Applet 失败/消失

java - 使用多线程读取信息

android - Facebook Conceal .so 文件未在 Android 项目中上传

android - java.lang.UnsatisfiedLinkError 与 android 5.0 一起使用时

c++ - 无法在 C++ 中遍历二维数组

ruby - Rails 使用 OR 查询 WHERE 子句

python - Pandas 中 boolean 索引的逻辑运算符