Проверка, имеет ли объект Java тип массива в JNI

Скажите, что у меня есть класс MyClass в Java, есть ли способ зарегистрироваться в JNI это a jobject a MyClass[][]?

Моя начальная идея состояла в том, чтобы использовать env->IsInstanceOf(myobj, myArrayClass), но вызов env->FindClass("[MyClass") броски a NoClassDefFoundError.

5
задан Dan Berindei 29 March 2010 в 15:28
поделиться

1 ответ

Немного ржавый на JNI, но кое-что:

Вызов FindClass () для вашего полного имени класса, используя "/" вместо точек в качестве разделителя. Так, например, если ваш класс "my.package.MyClass" , вы должны вызвать env-> FindClass ("my / package / MyClass")

Поскольку у вас есть два- размерный массив вашего типа объекта, вам нужно дважды вызвать env-> GetObjectArrayElement () ; один раз, чтобы получить строку, и другой раз, чтобы получить отдельный элемент. Затем вы можете вызвать env-> IsInstanceOf () для этого элемента. Убедитесь, что вы нашли правильные подписи для этих вызовов JNI, я оставил их в качестве упражнения для читателя :)

1
ответ дан 15 December 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: