Как читать массив объектов, переданных в JNI из Java - PullRequest
2 голосов
/ 11 марта 2012

Это может звучать как вопрос новичка, но я хотел бы знать, как правильно читать и повторять через массив объектов, передаваемых в JNI c ++ из Java.

Например, объект имеет сигнатуру:

public class Node{
     public String name;
     public long uniqueId;
     public int rank;
}

И я передаю массив из десяти узловых объектов в нативный метод:

nativeParse(nodes);

Я хотел бы выполнять итерацию по объектам и создавать новые объекты c ++ из данных так,что мой код C ++ может использовать их.

Любая помощь будет оценена!

1 Ответ

4 голосов
/ 11 марта 2012

Предполагая, что 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);
  }
...