返回用户定义的类的JNI数组

时间:2016-05-13 23:05:44

标签: arrays java-native-interface user-defined-types

我有一个程序需要返回用户定义结构的数组。我已经构建了单独的结构,我可以立即从结构中提取数据。但是当我定义jobjectArray数组并执行用户定义数据类型的SetArrayElement,然后将其返回给java调用代码时,java表示该数组为null。 SetArrayElement不会抛出错误,但它没有返回值来指示元素的添加是否有效。 GetArraySize返回我分配的jobjectArray的长度,而不是我添加到数组中的元素数。

这是代码的摘录:

  cipherText = (*env)->NewObjectArray(env,
     2,
     myObjectArrayClass,
     tuple);
  if (cipherText == NULL)
     printf("NO NO NO cipherText array is NULL\n");

  printf("add zeroth element to cipherText\n");
  (*env)->SetObjectArrayElement(env,
    cipherText,
    0,
    (jobject)tuple);
  printf("add first element to cipherText\n");
  (*env)->SetObjectArrayElement(env,
    cipherText,
    1,
    (jobject)tuple);

0 个答案:

没有答案