您的位置:首页 > 编程语言 > Java开发

Native Method中操作Java对象的属性为数组时的处理

2012-11-30 10:51 330 查看
很简单,接口用的是SetObjectField,因为数组也是对象,在jni.h中,jarray和jobject是一个东西。

如,在java类中有一个属性short [] aPid;,在native method中,我们如下做:

jclass _pmClass = (*env)->GetObjectClass(env, program); //找到对象参数program的类

jfieldID _auID = (*env)->GetFieldID(env, _pmClass, "aPid", "[S"); //找到类型为short []的数组aPid

jshortArray _pidArray = (*env)->NewShortArray(env, MAX_AUDIO_NUM); //新建一个本地的shortArray

(*env)->SetShortArrayRegion(env, _pidArray, 0, _auIndex, _aArray);//设置内容为本地已经填好数据的一个jshort型数组_aArray,_auIndex是该数组数据的长度

(*env)->SetObjectField(env, program, _auID, _pidArray);//把这个_pidArray设置为aPid的值

(*env)->DeleteLocalRef(env, _pidArray);//删除本地引用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: