完全合格类的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类型签名here的文档,这是我借用上述示例的地方.
在你的具体例子中:
void getData( ListDataClass[] arryData ) // Java method
"([Lclass/path/ListDataClass;)V" // JNI type signature
注意:确切的类型签名取决于你的类路径.
然后,您可以如下找到方法ID(假设C和一个名为env的JNIEnv指针):
jclass clz = env->FindClass("class/path/ListDataClass");
jmethodID mid = env->GetMethodID(clz, "getData", "([Lclass/path/ListDataClass;)V");