2017-02-21 9 views
2

ここに私がJNIに変換したい私のJavaコードがあります。
どうすればこのようなことができますか?JNIでの複雑な配列の初期化

コード:

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); 
    } 
    } 
} 
+0

あなたが作成します各要素が 'IntArray'である' ObjectArray'です。 – Michael

+0

私が間違っていると私を訂正しますが、JNIのネイティブ関数はCまたはC++で書かれています。 [ここをクリック](https://en.m.wikipedia.org/wiki/Java_Native_Interface)。 –

+0

また、[this](https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html)は役立つようです。 –

答えて

0

私はあなたのコードに含まれているロジック、理解していないが、私はちょうど多方向配列を作成する方法をあなたに例を示します。

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 
}