ionException:如果该类为一个接口或抽象类。
OutOfMemoryError:如果系统内存不足。
jobject NewObject JNIEnv env jclass clazz jmethodIDmethodID ... //参数附加在函数后面 jobject NewObjectA JNIEnv env jclassclazz jmethodID methodIDjvalue args //参数以指针形式附加 jobjec tNewObjectV JNIEnv env jclassclazz jmethodID methodIDva_list args //参数以quot链表quot形式附加 功能:构造 新 Java 对象。
方法 ID 指示应调用的构造函数方法。
注意:该 ID特指该类 class 的构造函数 ID , 必须通过调用 GetMethodID 获得,且调用时的方法名必须为 ltinitgt,而返回类型必须为 void V。
clazz 参数务必不要引用数组类。
参数: env JNI 接口指针。
clazz Java 类对象。
methodID 构造函数的方法 ID。
NewObject 的其它参数: 传给构造函数的参数,可以为空 。
NewObjectA 的其它参数: args:传给构造函数的参数数组。
NewObjectV 的其它参数: args:传给构造函数的参数 va_list。
返回值: 返回 Java 对象,如果无法构造该对象,则返回 NULL。
抛出: InstantiationException 如果该类为接口或抽象类。
OutOfMemoryError 如果系统内存不足。
构造函数抛出的任何异常。
jclass GetObjectClass JNIEnv env jobject obj 功能:返回对象的类。
参数: env JNI 接口指针。
obj Java 对象(不能为 NULL)。
返回值: 返回 Java 类对象。
jboolean IsInstanceOf JNIEnv env jobject obj jclass clazz 功能:测试对象是否为某个类的实例。
参数: env JNI 接口指针。
obj Java 对象。
clazz Java 类对象。
返回值:如果可将 obj 强制转换为 clazz,则返回 JNI_TRUE。
否则返回JNI_FALSE。
NULL 对象可强制转换为任何类。
jbooleanIsSameObject JNIEnv env jobjectref1 jobject ref2 功能:测试两个引用是否引用同一 Java 对象。
参数: env JNI 接口指针。
ref1 Java 对象。
ref2 Java 对象。
返回值: 如果 ref1 和 ref2 引用同一 Java 对象或均为 NULL,则返回JNI_TRUE。
否则返回 JNI_FALSE。
///////////////////////////////////////////////////////////////////////////////////////////////////////////五、 字符串操作 jstring NewString JNIEnv env const jchar unicodeChars jsize len 功能:利用 Unicode 字符数组构造新的 java.lang.String 对象。
参数: env:JNI 接口指针。
unicodeChars:指向 Unicode 字符串的指针。
len:Unicode 字符串的长度。
返回值: Java 字符串对象。
如果无法构造该字符串,则为 NULL。
抛出: OutOfMemoryError:如果系统内存不足。
jsize GetStringLength JNIEnv env jstring string 功能:返回 Java 字符串的长度(Unicode 字符数)。
参数: env:JNI 接口指针。
string:Java 字符串对象。
返回值: Java 字符串的长度。
const jchar GetStringChars JNIEnvenv jstring string jbooleanisCopy 功能:返回指向字符串的 Unicode 字符数组的指针。
该指针在调用ReleaseStringchars 前一直有效。
如果 isCopy 非空,则在复制完成后将 isCopy 设为 JNI_TRUE。
如果没有复制,则设为 JNI_FALSE。
参数: env:JNI 接口指针。
string:Java 字符串对象。
isCopy:指向布尔值的指针。
返回值: 指向 Unicode 字符串的指针,如果操作失败,则返回 NULL。
void ReleaseStringChars JNIEnv env jstring string const jcharchars 功能:通知虚拟机平台相关代码无需再访问 chars。
参数 chars 是一个指针,可通过 GetStringChars 从 string 获得。
参数: env:JNI 接口指针。
string:Java 字符串对象。
chars:指向 Unicode 字符串的指针。
jstring NewStringUTF JNIEnv env const char bytes 功能:利用 UTF-8 字符数组构造新 java.lang.String 对象。
参数: env:JNI 接口指针。
如果无法构造该字符串,则为 NULL。
bytes:指向 UTF-8 字符串的指针。
返回值:Java 字符串对象。
如果无法构造该字符串,则为 NULL。
抛出: OutOfMemoryError:如果系统内存不足。
jsize GetStringUTFLength JNIEnv env jstring string 功能:以字节为单位返回字符串的 UTF-8 长度。
参数: env:JNI 接口指针。
string:Java 字符串对象。
返回值: 返回字符串的 UTF-8const char GetStringUTFChars JNIEnvenv jstring string jbooleanisCopy 功能:返回指向字符串的 UTF-8 字符数组的指针。
该数组在被 ReleaseStringUTFChars 释放前将一直有效。
如果 isCopy 不是 NULL, isCopy 在复制完成后即被设为 JNI_TRUE。
如果未复制,则设为 JNI_FALSE。
参数: env:JNI 接口指针。
string:Java 字符串对象。
isCopy:指向布尔值的指针。
返回值: 指向 UTF-8 字符串的指针。
如果操作失败,则为 NULL。
void ReleaseStringUTFChars JNIEnv env jstring string const charutf 功能:通知虚拟机平台相关代码无需再访问 utf。
utf 参数是一个指针,可利用 GetStringUTFChars 获得。
参数: env:JNI 接口指针。
string:Java 字符串对象。
utf:指向 UTF-8 字符串的指针。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////六、数组操作jsize GetArrayLength JNIEnv env jarray array 功能:返回数组中的元素数。
参数:env:JNI 接口指针。
array:Java 数组对象。
返回值: 数组的长度。
jarray NewObjectArray JNIEnv env jsize length jclass elementClassjobject initialElement 功能:构造新的数组,它将保存类 elementClass 中的对象。
所有元素初始值均设为 initialElement。
参数: env:JNI 接口指针。
length:数组大小。
elementClass:数组元素类。
initialElement:初始值。
可以为 NULL 。
返回值:Java 数组对象。
如果无法构造数组,则为 NULL。
抛出: OutOfMemoryError:如果系统内存不足。
说明: 使用该函数时,为了便于易操作性,我们一般可以用 jobjectArray 数组类型或得返回值,例如: jobjectArray objArray env-gtNewObjectArray //操作该对象 env-gtGetObjectArrayElement objArray 0//获得该 object 数组在索引 0 处的值 可以强制转换类型.jobject GetObjectArrayElement JNIEnv env jobjectArray arrayjsize index 功能:返回 Object 数组的元素。
参数: env:JNI 接口指针。
array:Java 数组。
index:数组下标。
返回值: Java 对象。
抛出: ArrayIndexOutOfBoundsException:如果 index 不是数组中的有效下标。
void SetObjectArrayElement JNIEnv env jobjectArray array jsizeindex jobject value 功能:设置 Object 数组的元素。
参数: env:JNI 接口指针。
array:Java 数组。
index:数组下标。
value:新值。
抛出: ArrayIndexOutOfBoundsException:如果 index 不是数组中的有效下标。
ArrayStoreException:如果 value 的类不是数组元素类的子类。
NewltPrimitiveTypegtArray 方法类型NativeType NewltPrimitiveTypegtArray JNIEnv env ArrayType arrayjbooleanisCopy 说明: 用于构造新基本类型数组对象的一系列操作。
下表说明了特定的基本类型数组构造函数。
用户应把 NewltPrimitiveTypegtArray 替换为某个实际的基本类型数组构造函数例程名(见下表),然后将 ArrayType 替换为 该例程相应的数组类型。
参数: env : JNI 接口指针。
length:数组长度。
返回值: Java 数组。
如果无法构造该数组,则为 NULL。
NewltPrimitiveTypeg
上一篇:
基于OpenCV的粒子滤波
下一篇:
哈弗F7 VS名爵HS,谁更懂得年轻人的心?