jni传递二维数组的问题
比如一个//输入一个boolean二维数组
java代码:
//输入一个boolean二维数组
public native void setArray(boolean[][] blList);
boolean[][] blList = { {true, false},{true,true},{false,false} };
myclass.setArray(blList);
生成头文件代码:
JNIEXPORT void JNICALL myclass_setArray
(JNIEnv *, jobject, jobjectArray);
二维数组boolean[][] 被转换为jobjectArray,
C文件代码:
JNIEXPORT void JNICALL Java_com_sundy_jnidemo_ChangeMethodFromJni_setArray
(JNIEnv *env, jobject, jobjectArray ba)
{
jobject pba = (env)->GetObjectArrayElement (ba, 0 );
jsize len = (env)->GetArrayLength(ba);
int i=0;
for( i=0; i < len; i+=1 )
{
printf( "boolean = %s\n", pba );
}
}问题就是怎么把jobjectArray 转换为一个二维的jbooleanArray
或者把jobjectArray 中的元素(jobject pba = (env)->GetObjectArrayElement (ba, 0 );)
转换为一个一维的jbooleanArray
http://www.iplab.cs.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/guide/jni/spec/functions.doc.htm
l#17314
这里边根本没有二维数组的概念,也没有相互转化的方法
救命啊!!
哪位会的给讲一下,最好给出例子代码。