0

我编写了一个本机Java 函数,它传递一个 2D 数组。Java 端的“double [][]”在 JNI/C++ 端变成了“jobjectArray”。所以我需要使用GetObjectArrayElement()来访问“外部”数组的元素,并且这些元素(即“内部”数组)应该jdoubleArray类型。但是我从GetObjectArrayElement()函数中将它们作为作业类型。现在,如何使用IsInstanceOf ()函数检查jobject是否实际上是jdoubleArray

我显然需要一个代表jobjectArray类的jclass 。但是怎么做呢?我知道我需要将什么字符串传递给jobjectArray类的FindClass显然,Java 端的jobjectArray没有等价物......到目前为止,我想出的唯一方法是:

jdoubleArray dummyDoubleArray = env->NewDoubleArray(1);
jclass doubleArrayClass = env->GetObjectClass(dummyDoubleArray);

if(env->IsInstanceOf(element, doubleArrayClass)) ...

这需要每次都创建一个虚拟的 DoubleArray!有没有更有效的方法?

提前致谢!

4

0 回答 0