1

我想知道是否有办法从 jclass 中获取作业?我们可以从 JNIEnv 调用 GetObjectClass(object) 中获取 jclass,但我找不到任何地方可以从 jclass 中获取 jobject,反之亦然。在我的实现中,我使用 NewGlobalRef() 函数缓存了 jclass 实例,但是在新线程中我需要 jobject 来查找 MethodID。我没有办法得到这份工作。我最终改为缓存作业。

4

1 回答 1

2

无法进行反向映射,因为类和对象之间没有 1 : 1 的关系。jclass代表一个类型,而jobject代表一个实例。

因此可以jclass从 an中获取,jobject因为它的意思是“识别实例的类型”。但反向操作无关紧要。给定类型可能有多个实例,或者甚至可能没有给定类的实例。

如果稍后需要调用非静态方法,则必须记住对jobject.

于 2016-11-11T13:24:34.430 回答