java - 不同JNI调用的相同参数是否具有相同的值?

标签 java interface java-native-interface native

例如,同一对象有两个不同的 JNI 方法


class JavaObj{
   public native void methodA();
   public native void methodB();
}

这些方法的 JNI header 可能是


JNIEXPORT void JNICALL Java_JavaObj_methodA(JNIEnv * pEnv, jobject javaobj);
JNIEXPORT void JNICALL Java_JavaObj_methodB(JNIEnv * pEnv, jobject javaobj);

那么可以安全地假设这两个单独的 JNI 调用中 pEnv 和 javaobj 的值相同吗?

最佳答案

当然不是。 JNIEnv * 可以在 JNI 调用之间随时更改,并且您可以拥有类的多个实例。

关于java - 不同JNI调用的相同参数是否具有相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3903994/

相关文章:

java - 在 Jetty 和 Tomcat 中运行 Web 应用程序

java - Spring Data Mongo - 如何通过@DBRef 字段的 id 进行查询

java - JBoss AS 5 中部署的 Java EE 的推荐分析方法

oop - 如何在 Dart 中定义接口(interface)?

c++ - std::vector 类型引用的无效初始化

java - JNI 内存管理

java - 如何保护 Spring Boot/Spring-Data Rest 以便用户只能部分访问对象

actionscript-3 - AS3 如何使变量只包含实现给定接口(interface)的对象

java - OpenCV 的 Java 绑定(bind) Mat.get() 给出了奇怪的结果

java - 为什么 sun.misc.Unsafe.unpark() 被描述为 'Unsafe' ?