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);//删除本地引用
如,在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);//删除本地引用
相关文章推荐
- JNI学习笔记:(1)开篇(2)本地代码访问Java代码 (3)本地方法取得Java属性/调用java方法 (4)本地代码创建Java对象(包括javaString) (5) 本地方法处理java数组
- Java 对象数组多属性条件排序问题(详解)
- 10014---JavaWeb基础--域对象的属性操作
- jQuery学习笔记 操作jQuery对象 属性处理
- java:在Conllection接口中实际上也规定了两个可以将集合变成对象数组的操作
- 反射机制_介绍_Class对象获取_动态操作_构造器_方法_属性JAVA211-212
- Java的动态性支持学习二 - 反射机制 属性、方法、对象的操作
- JNI全攻略之——操作Java对象的属性
- js数组的操作 和 数组对象的3个属性
- java对象与byte[]数组之间的相互转化,压缩解压缩操作
- java基础-反射3(反射,反射创建对象,操作对象属性,调用对象方法)
- JAVA数组和JAVA集合类的对象操作-Java基础-Java-编程开发
- java的BeanUtils.copyProperties会把为数据源对象中数字包装对象为null的值改成0赋值给操作对象的属性
- Java -- 利用反射 操作任意数组,包括对象数组 和 基本数据类型的数组
- Java I/O 技术(八)—— 操作文件属性的对象:File
- Java对象和数组操作(一)
- java.lang.reflect操作对象属性(域)的值
- Java对象和数组操作(二)
- Java -- 利用反射 操作任意数组,包括对象数组 和 基本数据类型的数组