这可能听起来像是一个新手问题,但我想知道从java传递到JNI c ++的对象数组的正确阅读和迭代方法。
例如,该对象的签名为:
public class Node{
public String name;
public long uniqueId;
public int rank;
}
我将一个包含十个节点对象的数组传递给本机方法:
nativeParse(nodes);
我想迭代对象并从数据中创建新的c ++对象,以便我的c ++代码可以使用它们。
任何帮助将不胜感激!
答案 0 :(得分:4)
假设newNodes[]
是您的C ++对象数组,您可以尝试这样的事情:
JNIEXPORT void JNICALL nativeParse(JNIEnv *env, jint size, jobjectArray nodes)
{
for(int i=0; i < size; i++)
newNodes[i]= (jobject) env->GetObjectArrayElement(nodes, i);
}