JNI: Как получить класс jdoubleArray как jclass на стороне JNI / C ++?

Я написал родные 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! Есть ли более эффективный способ?

Заранее спасибо!

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]