JNI中的复杂数组初始化

3

这是我想要转换成JNI的Java代码。
我应该如何做?

代码:

public class ArrayTest
{
  public static void main(String[] args)
  {
    int[][] a = new int[11][3];
    int[] b;

    for(int i = -5 ; i <=5; i++){
      b = a[i + 5];
      System.out.println(b.length);
    }
  }
}

您可以创建一个ObjectArray,其中每个元素都是一个IntArray - Michael
请纠正我,JNI的本地函数是用C或C++编写的,对吗?请参见此处 - Lupus Nox
此外,这个链接似乎可以帮助:https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html - Lupus Nox
1个回答

1
我不理解你的代码中包含哪些逻辑,但我可以给你展示一个创建多维数组的例子:
jclass intArrayClass = env->FindClass("[I");
// create outher array
jobjectArray a = env->NewObjectArray(11, intArrayClass, NULL);
// initialize inner array
for(int i = 0; i < 11; i++)
    env->SetObjectArrayElement(imgArray, i, env->NewIntArray(3));

jintArray b;
for(int i = -5 ; i <=5; i++){
    b = (jintArray)env->GetObjectArrayElement(a, i + 5);
    // print lenght of b array
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接