Ответ 1
Подписи типа JNI для полностью квалифицированных классов принимают форму:
Lclass/path/ClassName;
Например:
"Ljava/lang/String;" // String
"[Ljava/lang/String;" // String[] (array)
Сигнатура метода создается из них путем размещения аргументов в скобках сначала и типа возврата после правой скобки. Например:
long f (int n, String s, int[] arr); // Java method
"(ILjava/lang/String;[I)J" // JNI type signature
Вы можете найти документы для подписей типа JNI здесь, где я взял предыдущий пример из.
В вашем конкретном примере:
void getData( ListDataClass[] arryData ) // Java method
"([Lclass/path/ListDataClass;)V" // JNI type signature
Примечание: точная подпись типа зависит от пути вашего класса.
Затем вы можете найти идентификатор метода следующим образом (предполагая, что С++ и указатель JNIEnv env):
jclass clz = env->FindClass("class/path/ListDataClass");
jmethodID mid = env->GetMethodID(clz, "getData", "([Lclass/path/ListDataClass;)V");