我想知道是否有办法从 jclass 中获取 jobobject?我们可以从 JNIEnv 调用 GetObjectClass(object) 获取 jclass,但我找不到任何地方可以从 jclass 获取 jobject,反之亦然。在我的实现中,我使用 NewGlobalRef() 函数缓存 jclass 实例,但随后在新线程中我需要 jobject 来查找 MethodID。我没有办法获得该工作。我最终缓存了 jobobject。
最佳答案
不可能进行反向映射,因为类和对象之间不存在 1:1 的关系。 jclass
表示类型,而 jobject
表示实例。
因此可以从jobject
获取jclass
,因为它意味着“识别实例的类型”。但反向操作是无关紧要的。给定类型可能有多个实例,或者甚至可能没有给定类的实例。
如果稍后需要调用非静态方法,那么您必须记住对作业对象
的引用。
关于java - 从JNI中的jclass获取jobobject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40540711/