Я написал родные Java-функция, которая передает двумерный массив double. Что такое «double [] []» на стороне Java, становится «jobjectArray» на стороне JNI / C ++. Так что мне нужно использовать GetObjectArrayElement () для доступа к элементам «внешнего» массива и этим элементам (то есть «внутренним» массивам) должен быть типа jdoubleArray. Но я получаю их от GetObjectArrayElement () функционировать, как jobject тип. Теперь, как я могу проверить, является ли jobject на самом деле jdoubleArray с использованием IsInstanceOf () функционировать?
Мне явно нужна JClass это представляет jobjectArray учебный класс. Но как это сделать? я имею нет идея что строка Я должен был бы перейти к FindClass для jobjectArray учебный класс. По-видимому, нет эквивалента для jobjectArray на стороне Java … Единственный метод, который я до сих пор понял, это:
jdoubleArray dummyDoubleArray = env->NewDoubleArray(1);
jclass doubleArrayClass = env->GetObjectClass(dummyDoubleArray);
if(env->IsInstanceOf(element, doubleArrayClass)) ...
Для этого нужно каждый раз создавать фиктивный DoubleArray! Есть ли более эффективный способ?
Заранее спасибо!
Задача ещё не решена.