我编写了一个 native Java函数,它传递了一个double数组。什么是" double [] []"在Java方面,成为一个" jobjectArray"在JNI / C ++方面。所以我需要使用 GetObjectArrayElement()来访问"外部"的元素。数组,这些元素(即"内部"数组)应属于 jdoubleArray 类型。但我从 GetObjectArrayElement()函数中获取它们,作为 jobject 类型。现在,如何使用 IsInstanceOf()函数检查 jobject 是否实际上是 jdoubleArray ?
我显然需要一个代表 jobjectArray 类的 jclass 。但是怎么做呢?我没有想法 jobjectArray 类需要传递给 FindClass 的 string 。显然,Java端的 jobjectArray 没有等价物...到目前为止我唯一想到的方法是:
jdoubleArray dummyDoubleArray = env->NewDoubleArray(1);
jclass doubleArrayClass = env->GetObjectClass(dummyDoubleArray);
if(env->IsInstanceOf(element, doubleArrayClass)) ...
每次都需要创建一个假的DoubleArray!有更有效的方法吗?
提前致谢!